jQuery: Comment attendre la réponse de POST ou GET pour l'écrire à une variable globale
Question de Progger99 | 29/10/2021 à 15:03
Je voudrais charger de nouvelles données avec une fonction de jQuery pour les traiter plus tard dans un endroit différent de mon script global. Ceci est mon code jusqu'à présent:
var num = 0; $.get("myscript.php", {id: id}, function(response){ num = response; }); alert(num); // toujours 0!!!
Le problème est: peu importe ce que j'ai mettre la variable "num" dans la fonction de recharge, il est toujours 0 à la fin!
Même si je définissais "num" sur quelque chose de différent dans la fonction à la main ou si j'utilise GET à la place de POST, cela ne fonctionne pas! Quelqu'un a-t-il une solution pour ce problème?
Sujets Connexes
MySQL: Sauts de Ligne dans MySQL
Conseil | 0 Commentaires
Script Batch: Arrêter Ordinateur Windows
Tutoriel | 4 Commentaires
jQuery: Lire et Modifier les Valeurs d'Attributs Data
Tutoriel | 0 Commentaires
JavaScript: Capturer l'Envoi d'un Formulaire
Tutoriel | 0 Commentaires
JavaScript: Teste si Variable JavaScript est définie
Conseil | 0 Commentaires
PHP Formulaire: Soumettre des données via POST et GET en même temps
Question | 1 Réponse
PHP: Itérer toutes les Variables POST
Question | 1 Réponse
Avis Important
Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.
Participer
Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.
Pour comprendre ce processus, vous devez savoir que les fonctions de jQuery .post() et .get() sont fonctionnant de manière asynchrone.
Cela signifie ce qui suit: lors de l'exécution de .post() ou .get(), le script n'attend pas la réponse ou le résultat de cette fonction. Au lieu de cela, le script continuera immédiatement. Donc, avant que votre variable puisse être réglée sur une autre valeur (le chargement du script prend enfin un peu de temps), la variable est déjà sortie et a donc toujours sa valeur initiale.
Si vous êtes au courant de .post() et .get() sont des simplifications de la fonction .ajax(), vous pouvez simplement utiliser la fonction .ajax() spécifiant plutôt que la fonction ne doit pas être exécutée de manière asynchrone (async:false):
Avec cela, il devrait fonctionner. Maintenant, la fonction devrait attendre jusqu'à ce que la valeur soit là.
28/10/2021 à 21:26