Hallo, erstmal möchte ich Dir sagen, dass ich es beeindruckend finde, wie Du an dem Thema dranbleibst.
Leider ist der letzte Teil, der für mich am wichtigsten ist nicht mehr weiter gemacht, daher weiß ich leider nicht was in der Datei get.hersteller.php passiert?
Was meinst Du damit? Ich war der Annahme, dass Du alles kontrollieren kannst. Im Endeffekt sollte get.hersteller.php einen String erzeugen, der Daten repräsentiert. Aufbereitet als JSON. Wie ein multidimensionales Array.
Aber wie kommen die Daten "dataType: "json"" in der Datei an? Nicht als normales GET oder POST, wie ich es kenne?
Unterscheidung: "data" von Jquery's $.ajax() bezeichnet die Methode, wie Daten an get.hersteller.php gesendet werden. "dataType" was als Rückgabe erwartet wird! Wenn du mit der "Datei" die get.hersteller.php meinst ist der Satz inkosistent (wie kommen die Daten "dataType: "json"" in der Datei an). Richtig ist, die Daten werden serialisiert per POST an die get.hersteller.php gesendet. Darauf hat dataType keinen Einfluss, sondern type und data. Oder meinst Du mit "der Datei" die aufrufende Seite". Nun, sie kommen dort als String an, der als JSON interpretiert wird. Genaugenommen in der Funktion "success". Ich kenne die Funktion json.build nicht, aber ich vermute es ist etwas wenig, um aus den JSON Daten deine options zu bauen.
Sehr schön benutzt Du jetzt auch die Methoden beforeSend und success.
Meine Ckeckbox sieht so aus:
Checkbox? Ich war mental noch bei Auswahllisten (<select>).
<form name="searchHersteller" method="post" action="javascript:;" onsubmit="$(this).searchHersteller()"> <input onchange="$('form[name=searchHersteller]').submit()" name="searchFormHersteller[]" type="checkbox" value="Dell" />
Ich persönlich bevorzuge Listener (korrekt) zu setzen, anstatt den Elementen onchange Attribute mitzugeben (Trennung von html und JS). Lass das action attribute weg, wenn Du die Form rein in JS evaluieren möchtest. Jquery bietet ein preventDefault() an, damit Deine Seite nicht neugeladen wird, bei e.g. Drücken der Entertaste. Nutze es.
Was war mit meinem letzten Einwand
Ich würde, wie gesagt, die Funktionen auslagern und im Jquery-Teil als Referenz übergeben, aber ansonsten gut.
Hast Du es bewußt zugunsten einer besseren Idee weggelassen oder nicht genau verstanden, was ich damit meine? Nur so gefragt.
Cheers,
BaBa
BaBa kommt von Basketball