AJAX-Problem
HakanK
- javascript
Hallo Leute,
ich hab da mal ein kleines Problem, dass ich nicht ganz verstehe. Das heisst, ich weiss noch nicht mal, ob es überhaupt ein Problem ist.
Ich habe ein DropDown-Feld. Sobald ein Element daraus gewählt wird, soll per AJAX ein PHP-Datei aufgerufen werden, in der die Inhalte der zweiten DropDown-Feld ermittelt werden sollen und diese werden dann per JS in das zweite DropDown-Feld eingefügt werden.
Problem ist nur, dass sobald beim ersten DropDown-Feld ein Element ausgewählt wird, gebe ich ein alert aus, mit der Value des Elementes.
Hier der COde:
function agf(grid){
var xmlre = false;
try {
xmlre = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlre = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlre = false;
}
}
if (!xmlre && typeof XMLHttpRequest != 'undefined') {
xmlre = new XMLHttpRequest();
xmlre.overrideMimeType('text/xml');
}
var url = "getlist.php?grid="+grid;
xmlre.onreadystatechange = function (){
alert("Status: "+xmlre.readyState);
};
xmlre.open('GET', url, true);
xmlre.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlre.send(null);
}
Das Problem ist: alert wird insg. 4 mal aufgerufen und geht dann hoch von 1 bis 4. Wieso wird dieser 4 mal hintereinander aufgerufen??
Gruß, Hakan
Hallo!
[...]
xmlre.onreadystatechange = function (){
alert("Status: "+xmlre.readyState);
};
[...]
Das Problem ist: alert wird insg. 4 mal aufgerufen und geht dann hoch von 1 bis 4. Wieso wird dieser 4 mal hintereinander aufgerufen??
Weil das nun mal der Sinn von der Funktion onreadystatechange ist! Onreadystatechanged heisst ja grob übersetzt "wenn ready status geändert".
Die 5 möglichen Status sind:
0: nicht initialisiert
1: Verbindung hergestellt
2: Request erhalten
3: Antwort wird be-/verarbeitet
4: Fertig.
Du solltest schon verstehen, WAS der Code macht den du abschreibst/einfügst.
Das Problem ist: alert wird insg. 4 mal aufgerufen und geht dann hoch von 1 bis 4. Wieso wird dieser 4 mal hintereinander aufgerufen??
http://www.w3.org/TR/2006/WD-XMLHttpRequest-20060405/#xmlhttprequest
Struppi.