michael michael - 7 months ago 21
Javascript Question

return from jquery ajax call

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?

Answer

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.

Comments