Ergebnis 1 bis 6 von 6
-
13-03-2011, 14:51 #1
Doppel-As
- registriert
- 18-04-2009
- Beiträge
- 111
Variable nicht gesetzt bis alert() Funktion
Hi,
ich habe ein sehr seltsames Problem:
ich habe eine ausgelagerte ajax Funktion mit 2 Optionalen und einem normalen Parametern.
Code:var result = NULL; function ajax(id, url, send){ //optionale Variable send -> z.B. '?left=29&top=29' für getter in php file if (typeof(send) != "undefined"){ var getterTmp = '?'+send; var getter = url+getterTmp; } else { var getter = url; } //optionale Variable id falls kein Div ausgegeben werden soll if (typeof(url) == "undefined"){ var getter = id; } // The variable that makes Ajax possible! var ajaxRequest; try{ // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); } catch (e){ // Internet Explorer Browsers try{ ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try{ ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e){ // Something went wrong alert("Your browser broke!"); return false; } } } // Create a function that will receive data sent from the server ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4){ //falls kein Div benötigt wird, wird result Variable mit Text befüllt if (typeof(url) == "undefined") { result = ajaxRequest.responseText; } //falls Div benötig wird, wird es dort hinein ausgegeben else { var ajaxDisplay = document.getElementById(id); ajaxDisplay.innerHTML = ajaxRequest.responseText; } } } ajaxRequest.open("GET", getter, true); ajaxRequest.send(null); } alert(result); //Funktion die die result Variable versendet function replyAjax(url){ ajax(url); alert(result); return result; }
PHP-Code:$login = mysql_connect("$login_host","$login_user","$login_pass"); //Login zur Database
mysql_select_db("$login_table");
$getXY_qur = mysql_query("SELECT * FROM `Doerfer` WHERE `user` = '$username'");
$getXY = mysql_fetch_row($getXY_qur);
echo $getXY[2].'|'.$getXY[3];
mysql_close();
Ich hatte vermutet, dass es daran liegen könnte, dass es noch nicht geladen war, also habe ich eine setTimout Funktion eingesetzt um das senden der Variablen zu verzögern, doch hat das auch nicht geklappt. Ich bin jetzt echt mit meinem Latein am Ende!
Bitte helft mir
mfg
Pöhli
-
13-03-2011, 16:51 #2
AW: Variable nicht gesetzt bis alert() Funktion
ajax ist asnychron! Du kannst niemals das Ergebnis mit return zurückgeben sondern musst es mit einem Callback verarbeiten.
-
13-03-2011, 17:35 #3
Doppel-As
- registriert
- 18-04-2009
- Beiträge
- 111
AW: Variable nicht gesetzt bis alert() Funktion
ok Danke schonmal, doch weiß ich leider nicht wie man das macht, oder was das ist... Ich benutze nicht oft JavaScrip/ Ajax also kann ich nur die absoluten Grundlangen! Wäre nett wenn du mir das nochmal erklären konntest oder ein Tutorial zeigen könnstest
Danke
Pöhli
-
13-03-2011, 23:56 #4
AW: Variable nicht gesetzt bis alert() Funktion
Eine Möglichkeit wäre es, den Request synchron zu machen (dritter Parameter in .open)... dann brauchst du auch kein onreadstatechange , sondern kannst das .responseText direkt von der Funktion ajax zurückgeben lassen.
-
14-03-2011, 17:45 #5
Doppel-As
- registriert
- 18-04-2009
- Beiträge
- 111
AW: Variable nicht gesetzt bis alert() Funktion
Wow Danke kkapsner!
Das war ja ziemlich einfach, wär ich aber nie drauf gekommen! Danke nochmal!
-
14-03-2011, 23:19 #6
Ähnliche Themen
-
Funktion funktioniert mit Variable nicht
Von ReSutekh im Forum JavaScriptAntworten: 8Letzter Beitrag: 22-11-2009, 01:12 -
onClick um eine Variable in einer Funktion zu verändern (klappt nicht)
Von mb-grille im Forum JavaScriptAntworten: 0Letzter Beitrag: 22-01-2008, 13:42 -
variable erhöht sich nicht beim 2. aufruf der funktion
Von zsoerenm im Forum JavaScriptAntworten: 15Letzter Beitrag: 31-12-2006, 03:29 -
SESSION-Variable ist gesetzt, aber leer
Von schwerminator im Forum Serverseitige ProgrammierungAntworten: 2Letzter Beitrag: 26-11-2006, 20:59
Lesezeichen