Ajax jquery synchronous callback success
ajax, javascript, jquery, synchronous
Solution
You need to set async: false for synchronous requests like this:
function doop(){
var that = this;
var theold = $(this).siblings('.theold').html();
var thenew = $(this).siblings('.thenew').val();
$.ajax({
async: false,
url: 'doop.php',
type: 'POST',
data: 'before=' + theold + '&after=' + thenew,
success: function(resp) {
if(resp == 1) {
$(that).siblings('.theold').html(thenew);
}
}
});
// some other code
return false;
}
see here for details
Problem
I have this function that makes an ajax call. I'm describing the problem in the last chunk of code comments. ``` function doop(){ var that = this; var theold = "theold"; var thenew = "thenew"; $.ajax({ url: 'doop.php', type: 'POST', data: 'before=' + theold + '&after=' + thenew, success: function(resp) { if(resp == 1) { $(that).siblings('.theold').html(thenew); } } }); // I have some code here (out of the ajax) that **further** changes // the .theold's html beyond what it was changed inside ajax success // but the change depends on whether the resp (inside the success // function) returned 1 or not, so this code out here depends on the ajax // so it looks like I have to turn this ajax call into a sync ajax return false; } ``` Based on the problem as described in the code comments, what changes are best for this situation?