2009-09-20 1 views
1

J'ai un formulaire dans lequel les utilisateurs peuvent soumettre des informations. La soumission peut réussir ou échouer.Boîte de dialogue jQuery UI après l'envoi d'un formulaire

Dans les deux cas, je souhaite qu'une boîte de dialogue indique à l'utilisateur si elle a réussi ou non.
La page se charge elle-même lors de la soumission du formulaire. Ergo, la page n'est pas envoyée via Ajax.

Je sais comment déclencher le DialogBox en cliquant sur un bouton/lien, etc. Mais comment puis-je utiliser jQuery UI Dialogaprès soumission du formulaire?

MISE À JOUR

J'ai trouvé la solution. You can read the solution in this thread.

+0

juste vu votre mise à jour maintenant. :/nevermind ma réponse :) –

Répondre

0

Vous devez pouvoir lier un gestionnaire d'événements à l'événement submit sur le formulaire.

$("form_name_here").bind("submit", function(){$("dialog").open()}) 

Ou quelle que soit la méthode utilisée pour afficher la boîte de dialogue. Je ne me souviens pas du haut de ma tête. L'autre option serait aller utiliser le plug-in de formulaire jQuery comme je suppose que vous utilisez ajax pour soumettre le formulaire. Avec cela, vous pouvez transmettre des méthodes pour tous les événements liés aux soumissions de formulaires. Avant, après, succès, échec, etc.

+0

Le formulaire n'est pas soumis en utilisant Ajax. Ainsi, votre solution affichera uniquement une boîte de dialogue après clic, mais avant le rechargement de la page. – Steven

+0

Votre script devrait tenter d'ouvrir la boîte de dialogue lorsque la page est ouverte. La réponse du serveur va devoir ajouter un paramètre url ou définir une variable dans le script pour déterminer dans quel état se trouve l'application (new, failed, success). Je pense que c'est votre seule option puisque vous n'utilisez pas ajax. – ScottyUCSD

1

N'utilisez pas un type = 'submit', mais associez plutôt un événement jQuery à un bouton normal, traitez le formulaire via ajax. Lorsque vous obtenez des résultats via ajax, vous pouvez afficher les résultats de la requête ajax dans la boîte de dialogue (PHP génère le message dans la boîte de dialogue) ou vous pouvez avoir un conditionnel qui vérifie s'il a réussi ou non.

Voici un exemple avec un dans le formulaire. (le codage est un peu bâclé)

$(document).ready(function() { 
     $('#submit').click(function() { 
      name = $('#name').val(); 
      email = $('#email').val(); 
      number = $('#number').val(); 
      message = $('#message').val(); 
      $.post("contact.php", //PHP file to send POST to 
      { ajax: 'yes', name: name, email: email, number: number, message: message }, //POST fields to send 
      function(returned) { //What to do if the POST finishes. 'returned' is the value recieved back from the script. 
       if (returned == 'done') { 
        //PHP script returns the word 'Done' 
         alert('Submit successful'); 
        });     
       } else { 
        alert('An error has occured'); 
}});});});