Empfehlungen: Erweiterte Suche

Daten - abhängige Select Felder

JavaScript und AJAX

Daten - abhängige Select Felder

Beitragvon fragdennis » So 29. Jan 2012, 21:52

CakePhp 1.3
JQuery 1.7.1 min

Hallo zusammen,

ich bin wirklich am verzweifeln und wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht mehr. Neben mir liegen die CakePHP Api, die JQuery Api, das Buch Webentwicklung mit CakePHP und das Buch CakePHP 1.3 Application Devolopment Cookbook. Außerdem, um den "Nutze die Suche" rufenden entgegenzukommen, mein Sonntag bestand aus nichts anderem und ich habe gelinde gesagt, die Schnauze voll. Ich brauche ein funktionierendes Beispiel.

Das Problem:
Ich möchte zwei Selectboxen erstellen, die voneinander abhängig sind. In Nummer 1 wird der Kunde ausgewählt und in Nummer 2 kann man eine der vielen Adressen, dieses einen Kunden auswählen. Eigentlich total einfach. Aber hier blick ich es einach nicht.

Mein Lösungsansatz (etwas vereinacht Darstellung der Tabellen)
Tabellen:
jobs
customers
customer_contacts
Alles ordentlich verknüpft. Läuft!

Nun will ich beim Anlegen eines Jobs einen Kunden zuordnen und eben seine Adresse.
Im customer_contacts_controller.php habe ich folgendes angelegt
Code: Alles auswählen

public $helpers = array('Js' => array('Jquery'));
public $components = array('RequestHandler');
function get(){
        $customerContacts = $this->CustomerContact->find('all', array('conditions' => 'Customer.Id = 2'));
        $this->set('customerContacts', $customerContacts);
    }
 

Zum Testen habe ich erstmal mir nur den Datensatz vom Kunden mit der ID 2 ausgeben lassen. Ein pr($customerContacts) zeigt, dass ich hier richtig handele.

Im der View jobs.php habe ich folgendes angelegt
Code: Alles auswählen

echo $this->Form->input('customer_id', array('id' => 'customer'));
echo $this->Form->input('customer_contact_id', array('id' => 'customercontact'));
$this->Js->get("#customer")->event('change','$("#customercontact").load("customerContacts/get")');
echo $this->Js->writeBuffer();
 

So und hier klappt es nicht. Beim Laden des Formulars sind sowohl Kunden als auch deren Adressen in den Selects (alle alle alle) aber eben alle. Wenn ich dann den Kunden wechsel, wird das Select der Adresse gelöscht und das wars dann auch. Es bleibt leer. MIr ist klar, dass die load() Anweisung eigenlich html Dokumente lädt. Mir ist aber nicht klar, wie ich das Ergebnis aus der get() Methode meines Controllers korrekt in mein Formular übertrage und dem Javascript Handler übergebe.


BIIIIITTTTTTT gebt mir ein funktionierendes Beispiel. Ich krieg hier einen Knall.


MFG Dennis
fragdennis
 
Beiträge: 1
Registriert: So 29. Jan 2012, 20:13

Zurück zu JavaScript und AJAX

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron