2009-08-06 4 views
4

Ceci est mon premier message, alors soyez gentil; Je veux créer un formulaire de plusieurs pages avec php.Validation de formulaire multipage avec php

Le formulaire s'étalera sur 3 pages, chaque page devra valider sur les données saisies dans le formulaire sur le client (en utilisant jquery validation) et si javascript est désactivé, sur le serveur, où les messages d'erreur doivent être affichés à côté du champ de formulaire associé. Lors de la validation, les données doivent être transmises à la page suivante du formulaire, de préférence en utilisant des variables de session. Le principal problème que je rencontre est que la plupart des scripts de validation quittent maintenant l'action = "" en se référant à la page courante, et en tant que telles, les variables post ne peuvent pas être passées sur une page différente dans la chaîne de formulaires.

Je souhaite avoir un script de validation qui sera validé, puis publier sur une nouvelle page en cliquant sur le bouton Envoyer.

Merci

Peter

Répondre

6

Vous ne devez pas publier sur la page suivante.

Vous pouvez valider les champs de formulaire sur la page en cours, les stocker dans une session, puis utiliser une redirection header("location: nextPage.php"); exit(0); pour passer à la page suivante.

+0

+1 C'est la bonne façon de le faire. –

+0

Merci pour cela, à la réflexion, c'est la meilleure approche! À votre santé. – mathalete

-1

Je recommande this validateur JS. Très facile à utiliser et ne dépend pas du tout du paramètre action="", vous pouvez toujours le définir comme vous le souhaitez.

0

généralement, vous pouvez faire quelque chose comme

<form onsubmit="return validateForm();" method="post" action="/wherever"> 

Et ce appellerez votre formulaire de validation javascript, ne pas soumettre le formulaire si le formulaire de validation retourne false. Vous devrez également effectuer une validation côté serveur, et je vous suggère de stocker les résultats validés des formulaires précédents dans la session, plutôt que de les poster de nouveau (car ils ne devront pas être revalidés à chaque fois!)

0

Vous devez utiliser le modèle post-redirection. Diffusez les variables à la page suivante (page de commande), Si la validation passent ensuite cette page fait un

header("Location: /page2.php"); 

après avoir sauvegardé les variables affichées à la session. Si la validation côté serveur échoue, alors vous faites un en-tête à la page1.php avec l'erreur. De cette façon, vous pouvez utiliser votre bouton de retour.

Questions connexes