JürgenB: Ajax Funktion - Wichtig!

Beitrag lesen

Hallo DasNets,

function ScriptUser(id) {
url='/index.php?do=ajaxuser&id='+id;
req=getAjax();
req.onreadystatechange=function()
{
  if(req.readyState==4&&req.status==200)
  {
   user=req.responseText;
  }
}
return user;

sollte das return ... nicht eine Zeile weiter oben, also vor dem Ende der FKT stehen? Sonst werden die beiden folgenden Befehle nie ausgeführt.

req.open('GET', url , true);
req.send( null );
}
abs=ScriptUser('10');
alert(abs);

Ajax ist asyncron. Wenn die Funktion "ScriptUser" fertig ist und der alert kommt, ist die Ajax-Anfrage noch lange nicht fertig. Daher ja der Evenhandler "onreadystatechange". Und wenn Du den return wie oben geschrieben verschiebst, hat die Funktion "ScriptUser" sowieso keinen Rückgabewert mehr. Wenn der alert (und weitere Verarbeitungsschritte) im Eventhandler sind, müsste es gehen.

Gruß, Jürgen