Webstatt.org - Community seit 2006 - 2012 (2024?)

Problem mit Funktion in Funktion

user-307
10.11.2006 09:55

Hi!

Ich habe folgendes Problem.
Ich möchte gerne meine Variable data in der zweiten (inneren) Funktion schreiben und in der ersten dann mit return ausgeben.
Habe schon vieles probiert. Hat leider nie funktioniert die Variable samt Inhalt auszugeben, da data leer ist, sobald ich außerhalb der zweiten Funktion bin. Jemand nen Plan?!

function sendRequest(file, queryString) { //Erste Funktion
var xmlHttp = new makeRequest();
var data;
if(xmlHttp) {
if(queryString != ""zwinkern {
xmlHttp.open('POST', file, true);
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'zwinkern;
xmlHttp.send(queryString);
}
xmlHttp.onreadystatechange = function() { //Zweite Funktion
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
data = xmlHttp.responseText;
/* Wäre hier ein alert(data); würde ich meinen Inhalt sehen */
}
}
};
/* Wäre hier ein alert(data); würde ich nichts sehen, da data hier leer ist! */
}
return data;
}


EDIT: Ach ja, wenn ich bei meiner Funktion das var data; (Zeile 3) weg lassen, dann funktioniert es übrigens zum Teil! Problem ist nur, dass der den Inhalt dann immer um einen Request verzögert in data ablegt.
Soll heißen, dass wenn ich zum Beispiel sage onKeyUp="sendRequest(...)" und schreibe "s", ist der Inhalt leer. Wenn ich "sp" schreibe, ist der Inhalt "s" Wenn ich "spa" schreibe bekomme ich "sp" usw.
Das tritt allerdings nur ab der Stelle des Kommentares (Zeile 18) auf!

.., Spark