Moin,
ich möchte via AJAX über ein SELECT-Feld zuerst ein weiteres SELECT-Feld erstellen (in Abhängigkeit von der Auswahl des ersten Feldes).
Ich habe durch die Tutorials hier auf dieser Seite es schon soweit hinbekommen, daß ich die Auswahl des ersten SELECTs an via AJAX an mein PHP Skript weiterleite, welches dann die Datenbank abfrage ausführt. Dort wird dann auch die XML-Ausgabe generiert. Doch jetzt hapert es bei mir mit der weiterverarbeitung der XML-Daten.
Hier die Code-Auszüge:
Alles anzeigen
Alles anzeigen
Alles anzeigen
Meine XML-Datei sieht damit wie folgt aus (Wird auch einwandfrei übertragen):
Alles anzeigen
Und genau an dieser Stelle komme ich jetzt nicht mehr so richtig weiter - wie kann ich jetzt die einzelnen Element auslesen - am besten in ein Array - um damit dann ein weitere SELECT-Feld zu füllen?
Vielen Dank schonmal für Eure Hilfe,
Jens
UPDATE:
Ich hab mir nochmal das eine Beispiel im Wiki angeschaut und habe nun eine Liste mit Trennzeichen erstellt und arbeite nun mit responseText und dann einem split. Damit hat es hingehauen
ich möchte via AJAX über ein SELECT-Feld zuerst ein weiteres SELECT-Feld erstellen (in Abhängigkeit von der Auswahl des ersten Feldes).
Ich habe durch die Tutorials hier auf dieser Seite es schon soweit hinbekommen, daß ich die Auswahl des ersten SELECTs an via AJAX an mein PHP Skript weiterleite, welches dann die Datenbank abfrage ausführt. Dort wird dann auch die XML-Ausgabe generiert. Doch jetzt hapert es bei mir mit der weiterverarbeitung der XML-Daten.
Hier die Code-Auszüge:
Quellcode
Quellcode
- function createXMLHttpRequest() {
- var ajax = false;
- try {
- ajax = new XMLHttpRequest();
- } catch (ms) {
- try {
- ajax = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (nonms) {
- try {
- ajax = new ActiveXObject("Microsoft.XMLHTTP");
- } catch (failed) {
- ajax = false;
- }
- }
- }
- return ajax;
- }
- var req = createXMLHttpRequest();
- if (req == false) alert("Request nicht möglich!");
- function sendRequest() {
- s1 = document.getElementById('s1').value;
- req.open('post', 'http://localhost/classes/select/getS1.php?', true);
- req.onreadystatechange = handleResponse;
- req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
- req.send("s1=" + s1);
- }
- function handleResponse() {
- if(req.readyState == 4){
- var xml = req.responseXML;
- }
- }
Quellcode
- $s = $_POST['s1'];
- $sql = 'SELECT …';
- $result = mysql_query($sql);
- echo '<?xml version="1.0" encoding="ISO-8859-1"?>
- <ergebnisse>';
- while($row = mysql_fetch_array($result)) {
- echo "<element>";
- echo "<element_name>" . $row['elemet_name'] . "</element_name>";
- echo "<element_id>" . $row['element_id'] . "</element_id>";
- echo "</element>";
- }
- echo "</ergebnisse>";
Meine XML-Datei sieht damit wie folgt aus (Wird auch einwandfrei übertragen):
Quellcode
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <ergebnisse>
- <element>
- <element_name>E1</element_name>
- <element_id>11</element_id>
- </element>
- <element>
- <element_name>E2</element_name>
- <element_id>12</element_id>
- </element>
- <element>
- <element_name>E3</element_name>
- <element_id>13</element_id>
- </element>
- …
- </ergebnisse>
Und genau an dieser Stelle komme ich jetzt nicht mehr so richtig weiter - wie kann ich jetzt die einzelnen Element auslesen - am besten in ein Array - um damit dann ein weitere SELECT-Feld zu füllen?
Vielen Dank schonmal für Eure Hilfe,
Jens
UPDATE:
Ich hab mir nochmal das eine Beispiel im Wiki angeschaut und habe nun eine Liste mit Trennzeichen erstellt und arbeite nun mit responseText und dann einem split. Damit hat es hingehauen

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von jhartlep ()