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?

Original source