Formulaire avec inter influence

Culte
Invité n'ayant pas de compte PHPfrance

11 juil. 2005, 10:45

Bonjour, j essaye de creer un formulaire de demande de devis (avec php et javascript)

Mon formulaire se decoupe en 3 parties :

**********************
* * *
* 1 * 2 *
* * *
**********************
* *
* 3 *
* *
**********************

Dans la partie 1 je demande des infos Communes genre Nom prenom adresse etc....
Dans la partie 2 je demande le type de produit désiré avec un select (puis en fonction du select les informations qui correspondent a ce produit ( exemple l utilisateur choisi comme produit Une affiche, des champs apparaissent pour lui demander la quantité, la taille etc...

Puis une fois la partie 2 valider je veux ecrire dans la partie 3 un recapitulatif du ou des produits choisis: exemple de la partie 3 :

- article désiré : pommes , quantité : 12, couleur : rouge etc....

et uen fois validé le tout je m envoie la partie 3 par email..

J espere que j ai assez bien expliqué...

Et donc mon probleme est que quand l utilisateur change de produit, j ai mis un evenement document.form.submit() pour pouvoir conserver les données de la partie 1 or cela valide tout le formulaire et donc cré une partie 3 a chaque changement du produit.

Ma question est : est t il possible de ne valider que certains champs dans un document.form.submit ? (j ai essayé document.form[nom_du_champ].submit() ou document.form.submit(nom_du_champ) sans succé)

Ou est ce que je m y prend mal et k il y a une solution plus simple...

Merci d avance si vous avez eu la patience de lire.

Culte

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 juil. 2005, 10:48

non, submit envoie un formulaire en entier

solution possible, 2 formulaires
un premier pour les parties 1 et 2, que tu valides
un deuxième, qui récupère les infos du premier, les stockes (genre champs cachés), affiche le résumé
quand tu soumets le deuxième, tu récupères donc toutes les infos

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

11 juil. 2005, 10:50

Peut être qu'en faisant 2 formulaire distinct, tu peut arriver à tes fins

1er formulaire pour ta partie 1 qui une fois validé met les valeurs en attente
2eme formulaire pour la partie 2 qui une fois validé récupère toutes les infos de 1 et de 2 et les affiches dans le formulaire 3

EDIT --

grrr :evil: grillé par le edit de ouckileou
Je vais me consoler en me disant "les grands esprits se rencontrent" 8)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Culte
Invité n'ayant pas de compte PHPfrance

11 juil. 2005, 10:51

Merci je vais essayer ca de suite

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 juil. 2005, 10:54

Je vais me consoler en me disant "les grands esprits se rencontrent" 8)
c'est exactement ça ;)

Culte
Invité n'ayant pas de compte PHPfrance

11 juil. 2005, 11:54

bon j ai essayé de separer en 2 formulaires : form1 et form2
j arrive a valider le form1 sur le onChange du produit mais les données je sais pas ou les stocker pour etre trankilou (j fait une varible de session pi etre?)

et par contre je n arrive pas a submit les 2 en meme temps au moment de valider le form2 :
j vous montre le code (je vire l inutile)

Code : Tout sélectionner

au debut du fichier je recup les variables importés que j appelle $nom $prenom etc... c plus simple: <form action="devis-tract2.php" name="form1" onSubmit="return verifydevis(this.nom, this.prenom, this.adresse, this.tel, this.mail, this.photo1)" method="post"> <?php echo "<input type='text' name='nom' value=".$nom."> "; ?> </form> <form action="devis-tract2.php" name="form2" method="post"> echo" <select name=\"produit\" onChange=\"window.document.form1.submit();\">"; echo " <option value='Cartes commerciales'>Cartes commerciales</option>"; echo " <option value='Cartes postales'>Cartes postales</option>"; <input type="button" value="Valider ce produit" onClick=\"document.form1.submit();document.form2.submit();\"> </form> et pour la partie 3 j ai pas encore mis en forme alors j fait juste un : <?php echo $import_quantite ?>
Merci si vous pouvez m aider a arranger un peu ca ^^ j m y remet

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

11 juil. 2005, 11:56

et par contre je n arrive pas a submit les 2 en meme temps au moment de valider le form2 :
il n'est justement pas question de soumettre les deux mais :
- soumettre le 1
- stocker les données dans des champs cachés du formulaire 2
ex : <input type="hidden" name="donneA" value="valeurA">

- afficher ces données comme tu le souhaites pour ton résumé
- puis soumettre le formulaire 2 qui contiendra les données transmises par le formulaire 1

Culte
Invité n'ayant pas de compte PHPfrance

11 juil. 2005, 13:59

han oui c'est bas bete j avais pas pensé a ca :) merci beaucoup j vais essayer de suite ^^

Invité
Invité n'ayant pas de compte PHPfrance

11 juil. 2005, 15:43

Apres pas mal de bidouilles le principe fonctionne tres bien.

Merci a vous pour vos précieux conseils et le temps que vous m'avez accordé. Passez une bonne journée :)

PROBLEME RESOLU !


Culte