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:
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
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
- <html>
- <head>
- <script language=Javascript>
- var request = new XMLHttpRequest();
- function abfrage(txt1, txt2, txt3)
- {
- var url = "select.php";
- url = url + "?"+txt1;
- url = url + "&"+txt2;
- url = url + "&"+txt3;
- /*request.overrideMimeType('text/xml');*/
- request.onreadystatechange = anzeige;
- request.open('GET',url,true);
- request.send(null);
- }
- function anzeige()
- {
- if (request.readyState == 0)
- {
- document.getElementById("anzeige").innerHTML = "<p> Suche wird durchgeführt...</p>"; //loading
- }
- else if(request.readyState == 1)
- {
- document.getElementById("anzeige").innerHTML = "<p> Suche wird durchgeführt...</p>"; //loaded
- }
- else if(request.readyState == 2)
- {
- document.getElementById("anzeige").innerHTML = "<p> Suche wird durchgeführt...</p>"; //interactive
- }
- else if(request.readyState == 3)
- {
- document.getElementById("anzeige").innerHTML = "<p> Daten werden geladen...</p>";
- }
- else if (request.readyState==4)
- {
- document.getElementById("anzeige").innerHTML=request.responseText;
- }
- }
- </script>
- </head>
- <body>
- <select name=alter size=1 onChange="javascript:abfrage(this.value, document.getElementsByName('wohnort')[0].value, document.getElementsByName('name')[0].value)">
- <option value="10">10
- <option value="30">30
- <option value="50">50
- </select>
- <br><br>
- <select name=wohnort size=1 onChange="javascript:abfrage(document.getElementsByName('alter')[0].value, this.value, document.getElementsByName('name')[0].value)">
- <option value="schwabach">schwabach
- <option value="wolkersdorf">wolkersdorf
- <option value="stein">stein
- </select>
- <br><br>
- <select name=name size=1 onChange="javascript:abfrage(document.getElementsByName('alter')[0].value, document.getElementsByName('wohnort')[0].value, this.value)">
- <option value="stoeckel">stoeckel
- <option value="wagenhuber">wagenhuber
- <option value="loesch">loesch
- </select>
- <br><br>
- <p id=anzeige></p>
- </body>
- </html>
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