2010-08-12 4 views
0

Je me demandais s'il y a un moyen simple avec Jquery de faire quelque chose pendant que le processus PHP appelé par les formes donne une réponse. PS: Je suis bien conscient des fonctions ajax pour envoyer des données POST et en cas de succès faire quelque chose. J'expliquerai que j'ai un formulaire sur la page 1.php qui pointe vers 2.php (juste un script) qui soit redirige vers la 1.php si quelque chose s'est mal passé ou vers la page 3.php si c'est OK. Je veux juste voir un message avec un chargeur gif (ajouter un texte sous le bouton "soumettre") pendant que ce processus de soumission se termine (cela peut prendre 10 secondes car il redimensionne les images). Je demande un moyen simple parce que je ne veux pas passer chaque donnée POST à ​​travers AJAX ou valider des données parce que tout cela est géré par la page PHP (2.php) en redirigeant vers les pages.Comment "tenir" la page jusqu'à soumettre des réponses avec jquery

J'ai été capable de le faire le problème est qu'une fois que vous soumettez, puisqu'il renvoie vrai, tout sur la page d'origine s'arrête. Par exemple je mets une animation au texte "Processing, please wait ..." avec un gif qui respectivement ne continuera pas à travers le temps d'attente et ne montrera pas parce que s'il n'est pas sauvegardé dans le cache une autre fois auparavant le soumettre arrêtez ce processus pour le télécharger, même si je le précharge, il ne sera pas animé pour la même raison. Fondamentalement, ce dont j'ai besoin est de passer toutes les données POST par jquery ajax sur submit (en retournant false pour permettre au nouveau suivant de s'afficher!) Et de laisser le processus continuer sur n'importe quelle réponse.

Merci.

Répondre

0

Vous pouvez utiliser un synchronous call au lieu d'async pour le message jquery 'ajax', qui ne sera pas renvoyé tant que le traitement du serveur ne sera pas terminé. Dans le cadre du gestionnaire de soumission, affichez votre message «veuillez patienter, traitement» et supprimez-le une fois la réponse reçue.

+0

J'ai regardé ce fil et il me semble que je dois encore passer des paramètres via POST en ajax? –

+0

Oui, mais c'est comme ça que ça devrait être. Vous pouvez faire un gestionnaire d'onsubmit pour faire apparaître le message "please wait", mais il n'y a aucune garantie qu'il soit vu. Après tout, vous avez cliqué sur "submit", ce qui signifie que vous avez commencé à naviguer vers une nouvelle page. La méthode AJAX garantit au moins que vous serez toujours sur la même page lorsque la requête est terminée. –

+0

Merci pour l'explication –

Questions connexes