2013-10-24 2 views
0

Im действительно ломаю голову на этом. Ive много читал о обратных вызовах и знаю, что ajax асинхронен, но я не могу, чтобы жизнь меня находила, как получить значение обратно, которое я могу использовать позже в выражении if.с использованием обратного вызова в jquery с ajax

$.ajax({ 
    url: 'http://'+document.domain+'/klanten/updateaddress.php', 
    type: 'post', 
    data: poststring, 
    success: function(result) { 
    console.log("result = "+result);  
    callbacks.add(result); 

    } 
}); 

//this doesnt work because result is generated asynchonous. 
if(result == success){ 
//do something 
} 

console.log прекрасно показывает успех или ошибка я сгенерировал в updateaddress.php и мне действительно нужно использовать, если заявление выполнить некоторый код после того, как он получил успех или нет. Может ли кто-нибудь объяснить мне, как работает система обратного вызова в этом случае?

Спасибо!

ответ

1

Поскольку это асинхронно, для этого может потребоваться некоторое время. Вы должны передать его в функции обратного вызова, который будет выполняться позже:

$.ajax({ 
    url: 'http://'+document.domain+'/klanten/updateaddress.php', 
    type: 'post', 
    data: poststring, 
    success: function(result) { 
     console.log("result = "+result);  
     callbacks.add(result); 
     if(result == success){ 
      //do something 
     } 

    } 
}); 

Чтобы объяснить, мы не знаем, когда это if заявления будет, но это не Защита будет сразу же, поэтому мы говорим JavaScript, выполните следующие действия, когда будете готовы.

Google javascript callbacks for more info

http://recurial.com/programming/understanding-callback-functions-in-javascript/

Смежные вопросы