Jquery ajax recuperer valeur
Irish
-
Irish -
Irish -
Bonjour,
Voici mon problème :
j'exécute une requête AJAX en JQUERY et j'aimerai affecter une valeur de mon objet json à une variable dans le callback :
mon premier alert affiche bien la bonne valeur.
mon deuxième alert affiche variable vide... j'en conclu que ma variable 'reponse' n'est pas mise a jour.
Quelqu'un aurait il une solution ?
Voici mon problème :
j'exécute une requête AJAX en JQUERY et j'aimerai affecter une valeur de mon objet json à une variable dans le callback :
var reponse = ''; $.post(urlAjax,{param},function(data){ if (data.erreur == 'ok') { reponse = data.rep; alert(reponse); } else { alert(data.erreur); } return reponse; },'json'); alert(reponse);
mon premier alert affiche bien la bonne valeur.
mon deuxième alert affiche variable vide... j'en conclu que ma variable 'reponse' n'est pas mise a jour.
Quelqu'un aurait il une solution ?
A voir également:
- Jquery ajax recuperer valeur
- Recuperer message whatsapp supprimé - Guide
- Récupérer mon compte facebook désactivé - Guide
- Comment récupérer un compte facebook piraté - Guide
- Comment recuperer une video sur youtube - Guide
- Impossible de récupérer mon compte gmail - Guide
2 réponses
En fait ton "deuxième" alert est appelé en premier de manière synchrone alors qu'il n'a pas encore de valeur puisqu'il ne prend sa valeur de manière asynchrone que lorsque la fonction est appelée juste avant ton "premier" alert.
Remarque : jQuery propose une méthode de haut niveau jQuery.getJSON pour t'éviter ton post.
Remarque : jQuery propose une méthode de haut niveau jQuery.getJSON pour t'éviter ton post.
var reponse = ''; $.getJSON(urlAjax,{param},success); alert(reponse); //... function success(data, textStatus, jqXHR) { if (data.erreur == 'ok') { reponse = data.rep; alert(reponse); } else { alert(data.erreur); } }
Merci beaucoup pour ta réponse, c'est un détail que j'avais oublié en effet.
Je n'ai pas réussi a faire fonctionner ta méthode comme je voulais et j'ai donc opté pour une simple requête AJAX en mode synchrone :
Je n'ai pas réussi a faire fonctionner ta méthode comme je voulais et j'ai donc opté pour une simple requête AJAX en mode synchrone :
var reponse = ''; $.ajax({ type: "POST", url: "ajax.php", data: "param=param", async: false, dataType: "json", success: function(data){ if (data.erreur == 'ok') { reponse = data.rep; } else { alert(data.erreur); } } });