jquery ajax obtenir résultat

Voici le code initial:

var res = null; $.post('test.php', 'q=testdata', function(response) { res = response; }); 

J’ai besoin d’utiliser res à un moment donné dans mon code, ou juste après l’appel ajax. J’ai essayé ceci:

 var res = null; $.post('test.php', 'q=testdata', function(response) { res = response; alert('Note 1: '+res); /* Returned exactly what I wanted */ }); alert('Note 2: '+res); /* Returned null. I need to use res here. How? */ 

Comment est-il possible d’utiliser res pour conserver la valeur souhaitée après l’appel ajax?

Votre code émet une requête ajax asynchrone pendant que la deuxième alerte s’exécute de manière synchrone. Cela signifie qu’une réponse peut ne pas être disponible lors de l’exécution de la deuxième alerte (séquentielle).

Essayez de placer ceci derrière votre appel $.post : $.ajaxSetup({async:false}) .

Cela forcera les alertes à être déclenchées dans l’ordre dans lequel elles apparaissent dans votre code. Si vous souhaitez effectuer un appel asynchrone, je vous suggère de suivre les conseils de Sudhir.

Est-ce que quelque chose de ce genre vous aidera:

 var res = null;
 $ .post ('test.php', 'q = testdata', fonction (réponse) {
    res = réponse;
    doQuelque chose (res);
 });

 fonction doQuelque chose (respo) {
   // fais quelque chose avec réponse
 }