Zurücksenden der Antwort von einem Jquery AJAX-Aufruf [duplizieren]

8

Ich habe eine Funktion geschrieben, die prüfen soll, ob ein Benutzername vergeben wurde oder nicht. Jetzt, wenn ich die Funktion von einer anderen Funktion aus aufrufen und den Rückgabewert melden:

%Vor%

es sagt "undefiniert". Ich habe hoch und niedrig gesucht, kann aber nicht finden, was ich falsch mache. Ich denke, es sollte nur das php-echo in check.php zurückgeben, aber das tut es nicht. Hier ist die Funktion, die ich schrieb:

%Vor%

Was mache ich falsch?

    
Joris Portfolioris 07.10.2010, 09:34
quelle

1 Antwort

10

AJAX-Aufrufe sind asynchron, dh sie geben nur Daten zurück, nachdem der Vorgang abgeschlossen wurde. I.e. Die Methode checkusernameavailable gibt keine Informationen zurück (es sei denn, Sie geben dies innerhalb dieser Methode selbst an). Sie müssen Folgendes tun:

%Vor%

Die Methode löst die asynchrone AJAX-Methode aus, die an check.php gesendet wird. Wenn die Antwort empfangen wird, behandeln Sie diese Antwort in Funktion, die mit dem Erfolgsrückruf von $.ajax verknüpft ist. Sie können eine Funktion auch direkt für diesen Erfolgsrückruf angeben:

%Vor%

BEARBEITEN:

Laut dem OP-Kommentar müssen Sie Ihren AJAX-Aufruf so ändern, dass er synchron statt asynchron ist (ich habe noch nie einen synchronen Aufruf wie diesen selbst gemacht, daher ist dies nicht getestet):

%Vor%

Vollständige API-Auflistung hier .

    
GenericTypeTea 07.10.2010, 09:39
quelle

Tags und Links