Le code suivant est un exemple de requete AJAX effectuée avec jQuery.
var string = 'default'; $.get('/index/test', {string: 'test'}, function(data){ string = data; } ); alert(string);
Le problème avec ce code est que la valeur de « string » va être affichée avant qu’elle soit mise à jour par la requête AJAX. En effet, la suite du code est exécutée avant que la requête soit terminée. La valeur de « string » va donc être « default ».
Pour ordonner à Javascript d’attendre la fin de la requête pour continuer l’exécution du code, il faut insérer la ligne suivante avant l’exécution de la requête:
$.ajaxSetup({async: false});
Exemple:
var string = 'default'; $.ajaxSetup({async: false}); $.get('/index/test', {string: 'test'}, function(data){ string = data; } ); alert(string); //pour remettre la valeur par défaut: $.ajaxSetup({async: true});
Cette fois ci, la valeur de « string » lors de son affichage sera « test ».
Merci plein de bug résolu grace a 1 ligne merci baucoups
100000000 merci !!! Ça fait 4 heure que je m’arrache les cheveux a passer ces foutus requête en sync