I'm trying to use the return from a jQuery ajax call in my own function, but it keeps returning undefined.
function checkUser2(asdf) {
$.ajax({
type: "POST",
async: false,
url: "check_user.php",
data: { name: asdf },
success: function(data){
return data;
//alert(data);
}
});
}
$("#check").click(function(){
alert(checkUser2("muma"));
});
the ajax call definitely works, because when I uncomment my alert I get the correct return, and I can see it in firebug. Am I doing something stupid?
The AJAX call is asynchronous - this means that the AJAX request is made out-of-order of usual program execution, and in your program that means that checkUser2()
is not returning data to the alert.
You cannot use return values from $.ajax()
calls in this way, instead move the code that utilises the AJAX return data to the success()
function - that what it's for.
You could do this, I think:
function checkUser2(asdf) {
var s = $.ajax({
type: "POST",
async: false,
url: "check_user.php",
data: { name: asdf },
success: function(data){
return data;
//alert(data);
}
}).responseText;
return s;
}
but, as in the 4th example of the jquery doc page for ajax function says, I think that
Blocks the browser while the requests is active. It is better to block user interaction > by other means when synchronization is necessary.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With