Hi,
var newDiv = document.createElement("div");
loadData(winCounter);
newDiv.innerHTML = response;
document.getElementById("content").appendChild(newDiv);mein loadData wird hier aufgerufen:
function loadData(c)
{
if (xmlHttp) {
xmlHttp.open('GET', 'getdata.php', true);
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
response = xmlHttp.responseText;
}
};
xmlHttp.send(null);
}
}die obere Funktion wird durch klick aufgerufen und kann mehrfach ausgeführt werden.
Mein Problem ist nun, dass beim 1. Klick nichts passiert, beim 2. Klick allerdings die Daten des 1. Klicks angezeigt werden.
Somit bin ich immer 1 Klick hinterher.
Hab ich vielleicht irgendwo was übersehen?
Bei AJAX wird der Request normalerweise asynchron abgesetzt, das heisst, dass mit der weiteren Abarbeitung des Scripts nicht gewartet wird, bis der Request fertig ist.
Wenn du den dritten Parameter von xmlHttp.open() auf false setzt wird der Request nichtmehr asynchron abgesetzt und es wird gewartet, bis er fertig ist.
Eine bessere Moeglichkeit waere es, den Response-Text in der Funktion, die bei onreadystatechange aufgerufen wird, in das DIV zu schreiben (da wo jetzt steht "response = xmlHttp.responseText;").
mfG,
steckl