[gelöst]XML-Daten via AJAX in Array lesen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [gelöst]XML-Daten via AJAX in Array lesen

    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:

    Quellcode

    1. <div class="auswahlboxen">
    2. <form action="post">
    3. <select name="s1" id="s1" onchange="sendRequest()">
    4. <option value="1">A1</option>
    5. <option value="2">A2</option>
    6. <option value="3">A3</option>
    7. <option value="4">A4</option>
    8. </select>
    9. </form>
    10. <div id="box2">
    11. </div>
    12. </div>
    Alles anzeigen


    Quellcode

    1. function createXMLHttpRequest() {
    2. var ajax = false;
    3. try {
    4. ajax = new XMLHttpRequest();
    5. } catch (ms) {
    6. try {
    7. ajax = new ActiveXObject("Msxml2.XMLHTTP");
    8. } catch (nonms) {
    9. try {
    10. ajax = new ActiveXObject("Microsoft.XMLHTTP");
    11. } catch (failed) {
    12. ajax = false;
    13. }
    14. }
    15. }
    16. return ajax;
    17. }
    18. var req = createXMLHttpRequest();
    19. if (req == false) alert("Request nicht möglich!");
    20. function sendRequest() {
    21. s1 = document.getElementById('s1').value;
    22. req.open('post', 'http://localhost/classes/select/getS1.php?', true);
    23. req.onreadystatechange = handleResponse;
    24. req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
    25. req.send("s1=" + s1);
    26. }
    27. function handleResponse() {
    28. if(req.readyState == 4){
    29. var xml = req.responseXML;
    30. }
    31. }
    Alles anzeigen

    Quellcode

    1. $s = $_POST['s1'];
    2. $sql = 'SELECT …';
    3. $result = mysql_query($sql);
    4. echo '<?xml version="1.0" encoding="ISO-8859-1"?>
    5. <ergebnisse>';
    6. while($row = mysql_fetch_array($result)) {
    7. echo "<element>";
    8. echo "<element_name>" . $row['elemet_name'] . "</element_name>";
    9. echo "<element_id>" . $row['element_id'] . "</element_id>";
    10. echo "</element>";
    11. }
    12. echo "</ergebnisse>";
    Alles anzeigen


    Meine XML-Datei sieht damit wie folgt aus (Wird auch einwandfrei übertragen):

    Quellcode

    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <ergebnisse>
    3. <element>
    4. <element_name>E1</element_name>
    5. <element_id>11</element_id>
    6. </element>
    7. <element>
    8. <element_name>E2</element_name>
    9. <element_id>12</element_id>
    10. </element>
    11. <element>
    12. <element_name>E3</element_name>
    13. <element_id>13</element_id>
    14. </element>
    15. </ergebnisse>
    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 :)

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