Problem mit AJAX-Skript

  • Problem mit AJAX-Skript

    Hallo,

    ich habe eine kleine AJAX-Anwendung geschrieben, die anhand von drei <select>-Auswahlmenüs (alter,wohnort,name) die entsprechenden Infos über einen Request aus der Datenbank auslesen soll.

    Der Quellcode dazu sieht so aus:

    Quellcode

    1. <html>
    2. <head>
    3. <script language=Javascript>
    4. var request = new XMLHttpRequest();
    5. function abfrage(txt1, txt2, txt3)
    6. {
    7. var url = "select.php";
    8. url = url + "?"+txt1;
    9. url = url + "&"+txt2;
    10. url = url + "&"+txt3;
    11. /*request.overrideMimeType('text/xml');*/
    12. request.onreadystatechange = anzeige;
    13. request.open('GET',url,true);
    14. request.send(null);
    15. }
    16. function anzeige()
    17. {
    18. if (request.readyState == 0)
    19. {
    20. document.getElementById("anzeige").innerHTML = "<p> Suche wird durchgeführt...</p>"; //loading
    21. }
    22. else if(request.readyState == 1)
    23. {
    24. document.getElementById("anzeige").innerHTML = "<p> Suche wird durchgeführt...</p>"; //loaded
    25. }
    26. else if(request.readyState == 2)
    27. {
    28. document.getElementById("anzeige").innerHTML = "<p> Suche wird durchgeführt...</p>"; //interactive
    29. }
    30. else if(request.readyState == 3)
    31. {
    32. document.getElementById("anzeige").innerHTML = "<p> Daten werden geladen...</p>";
    33. }
    34. else if (request.readyState==4)
    35. {
    36. document.getElementById("anzeige").innerHTML=request.responseText;
    37. }
    38. }
    39. </script>
    40. </head>
    41. <body>
    42. <select name=alter size=1 onChange="javascript:abfrage(this.value, document.getElementsByName('wohnort')[0].value, document.getElementsByName('name')[0].value)">
    43. <option value="10">10
    44. <option value="30">30
    45. <option value="50">50
    46. </select>
    47. <br><br>
    48. <select name=wohnort size=1 onChange="javascript:abfrage(document.getElementsByName('alter')[0].value, this.value, document.getElementsByName('name')[0].value)">
    49. <option value="schwabach">schwabach
    50. <option value="wolkersdorf">wolkersdorf
    51. <option value="stein">stein
    52. </select>
    53. <br><br>
    54. <select name=name size=1 onChange="javascript:abfrage(document.getElementsByName('alter')[0].value, document.getElementsByName('wohnort')[0].value, this.value)">
    55. <option value="stoeckel">stoeckel
    56. <option value="wagenhuber">wagenhuber
    57. <option value="loesch">loesch
    58. </select>
    59. <br><br>
    60. <p id=anzeige></p>
    61. </body>
    62. </html>
    Alles anzeigen


    Mein Problem ist, daß beim ersten Ändern eines beliebigen Suchparameters für den request.readyState immer der Wert 0 angezeigt wird und sonst nichts weiter passiert.
    Wenn ich einen weiteren Parameter aus einem anderen Auswahlmenü auswähle, wird die erste Abfrage ausgeführt.
    Generell ist es bei dem Skript so, daß bei der n-ten Änderung eines Suchparameters der (n-1)-te Request ausgeführt wird.

    Kann mir jemand sagen, woran das liegt? Ist das ein Programmierfehler oder unterstützt der Firefox vielleicht AJAX nicht hundertprozentig?

    Danke für eure Hilfe

    Gruß
    Michael