Page 1 sur 1

formulaire sur plusieurs pages

Posté : 12 oct. 2005, 16:04
par mackougan
salut à tous !

j'essaie de construire un formulaire sur 5 pages. j'aimerai que les variables puissent être changées au cas où il y a retour vers les formulaires précédents. chaque formulaire est sur une page html.

mon problème est que je n'arrive pas à transférer les données d'un formulaire à l'autre afin que le dernier formulaire envoie les données récoltées vers une adresse mail.

voici le principe sur un 2 pages :

//-- formulaire page 1

<form method="post" action="formulaire_page2.html">

<p>
Votre nom :<br /><input type="text" name="nom" size="40" /><br />
Commentaire :<br /><textarea name="texte" cols="40" rows="3"></textarea>
</p>

<input type="submit" name="Submit" value="Envoyer">
</form>


//-- formulaire page 2

<form method="post" action="[email protected]">

<input type="hidden" name="<?php echo $_POST['nom']; ?>">
<input type="hidden" name="<?php echo '<p>Votre commentaire : ' . $_POST['texte'] . '</p>';?>"

<p>
Votre passion :<br /><input type="text" name="nom" size="40" /><br />
Décrivez la nous :<br /><textarea name="texte" cols="40" rows="3"></textarea>
</p>

<input type="submit" name="Submit" value="Envoyer">
</form>

qu'est ce qui manque ???
vous pouvez m'aider, je ne comprends plus rien ...

merci beaucoup par avance !

Re: formulaire sur plusieurs pages

Posté : 12 oct. 2005, 16:06
par zeus
Dans ton formulaire 2, tu attribues les valeurs précédentes aux NOMS des champs cachés. Il faut leur donner un nom fixe et les attribuer aux VALEURS de ces champs
<input type="hidden" name="nom" value="<?php echo $_POST['nom']; ?>">
<input type="hidden" name="commentaire" value="<?php  echo '<p>Votre commentaire : ' . $_POST['texte'] . '</p>';?>"

Posté : 12 oct. 2005, 16:21
par mackougan
ouaaa ! Merci pour cette réponse hyper rapide !!!! ai jamais vu ça sur un forum ! (dois pas aller dans les bons ! :oops: )

juste une petite question : comme tu as pu le voir je maîtrise pas trop le php ! est ce un problème si mon formulaire 1 vise une page en html et pas php ??
dois je ouvrir une session en début de chaque page de formulaire ??

merci encore pour tt zeus !

Posté : 12 oct. 2005, 16:27
par zeus
juste une petite question : comme tu as pu le voir je maîtrise pas trop le php ! est ce un problème si mon formulaire 1 vise une page en html et pas php ??
Si tu veux utiliser du php dans ton 2nd formulaire (echo $_POST["nom"] par exemple), la page doit être en .php. Sachant que la seule différence c'est qu'un fichier .php va être parcouru par le serveur web pour interpreter le code PHP
dois je ouvrir une session en début de chaque page de formulaire ??
Si tu n'utilise pas la superglobale $_SESSION, non
merci encore pour tt zeus !
Mais de rien, j'ai signé pour :langue:
Mais au fait, j'ai signé, moi :-s :lol:

Posté : 12 oct. 2005, 16:40
par mackougan
super merci ! je vais tester ça ce soir en rentrant du boulot !! (et oui 2 vies en parallèle c'est pas évident à assumer !!)

o fait JE SIGNE maintenant :wink:

Mackougan
---------------------------------
La critique est facile, l'art est difficile.

Posté : 12 oct. 2005, 16:43
par zeus
o fait JE SIGNE maintenant :wink:
Tu pourrais t'inscrire par exemple :rool:
C'est gratuit et tu peux mettre ton sujet en [RESOLU] ;)

Posté : 12 oct. 2005, 17:10
par mac0kougan
ok a y est je me suis inscrit ! grand pas !!

juste pour que tu puisses valider. voici le code de tte à l'heure corrigé et ds dans lequel j'ai introduit en page1 un menu déroulant pour augmenter la difficulté.

chaque page de formaulaire sera en .php3
----------------

//-- formulaire1.php3

<form method="post" action="formulaire2.php3">

<p>
Votre nom :<br /><input type="text" name="nom" size="40" /><br />
Votre Ville: <select name="ville">
<option value"1" <? if ($ville=='1') echo('selected') ?>>Paris</option>
<option value"2" <? if ($ville=='2') echo('selected') ?>>Nantes</option>
<option value"3" <? if ($ville=='2') echo('selected') ?>>Lyon</option>
<option value"4" <? if ($ville=='2') echo('selected') ?>>Marseille</option>
Votre Commentaire :<br /><textarea name="texte" cols="40" rows="3"></textarea>
</p>

<input type="submit" name="Submit" value="Envoyer">
</form>

//-- formulaire2.php3

<form method="post" action="[email protected]">

<input type="hidden" name="nom" value="<?php echo $_POST['nom']; ?>">
<input type="hidden" name="commentaire" value="<?php echo '<p>Votre commentaire : ' . $_POST['texte'] . '</p>';?>"
<input type="hidden" name="ville" value="<?php echo '<p>Ville : ' . $_POST['ville'] . '</p>';?>"


<p>
Votre passion :<br /><input type="text" name="nom" size="40" /><br />
Décrivez la nous :<br /><textarea name="texte" cols="40" rows="3"></textarea>
</p>

<input type="submit" name="Submit" value="Envoyer">
</form>

----------------

comme je ne peux pas tester mon script, dis moi juste si tu penses que ça fonctionnera ?

merci bcp Grand Zeus

Posté : 12 oct. 2005, 17:29
par zeus
1°/ utilise les balise php ou code c'est plus facile pour lire le code
2°/ d'ou vient $ville ?

C'est tout ce que je trouve à dire
Je te montre ce que donne ton code avec les balises php(formulaire 1) et code(formulaire 2)
  //-- formulaire1.php3

<form method="post" action="formulaire2.php3">

<p>
Votre nom :<br /><input type="text" name="nom" size="40" /><br />
Votre Ville: <select name="ville">
<option value"1" <? if ($ville=='1') echo('selected') ?>>Paris</option>
<option value"2" <? if ($ville=='2') echo('selected') ?>>Nantes</option>
<option value"3" <? if ($ville=='2') echo('selected') ?>>Lyon</option>
<option value"4" <? if ($ville=='2') echo('selected') ?>>Marseille</option>
Votre Commentaire :<br /><textarea name="texte" cols="40" rows="3"></textarea>
</p>

<input type="submit" name="Submit" value="Envoyer">
</form> 

Code : Tout sélectionner

//-- formulaire2.php3 <form method="post" action="[email protected]"> <input type="hidden" name="nom" value="<?php echo $_POST['nom']; ?>"> <input type="hidden" name="commentaire" value="<?php echo '<p>Votre commentaire : ' . $_POST['texte'] . '</p>';?>" <input type="hidden" name="ville" value="<?php echo '<p>Ville : ' . $_POST['ville'] . '</p>';?>" <p> Votre passion :<br /><input type="text" name="nom" size="40" /><br /> Décrivez la nous :<br /><textarea name="texte" cols="40" rows="3"></textarea> </p> <input type="submit" name="Submit" value="Envoyer"> </form>

Posté : 12 oct. 2005, 20:10
par Truc
Salut, 2 petites choses a ajouter
dans le 1er code
<option value"1" <? if ($ville=='1') echo('selected') ?>>Paris</option> 
ajouter ceci en début de code
$ville= isset($_POST['ville']) ? $_POST['ville'] : ""
s'il y a un retour sur la page pour re-séléctionner l'élément dans la liste.

et erreurs de copier/coller pour les tests dans la liste ($ville=='2'), 3 fois le meme test

Posté : 13 oct. 2005, 10:08
par mac0kougan
salut

merci pour vos réponses Zeus et Truc... j'ai réussi à m'en dépatouiller ! mes formulaires fonctionnent à merveille..

seul détail par rapport à ce que tu disais Truc, je dois ajouter ceci en début de code
$ville= isset($_POST['ville']) ? $_POST['ville'] : "" 
mais je dois le mettre où ???? moi y'a n'a pas bien comprendre !

en tt cas merci pour tt

et félicitations à php france, vous êtes super efficace, meilleur forum que je connaisse (et pourtant je galère souvent .... ) :oops: [/php]

Posté : 13 oct. 2005, 13:41
par Truc
seul détail par rapport à ce que tu disais Truc, je dois ajouter ceci en début de code
$ville= isset($_POST['ville']) ? $_POST['ville'] : "" 
mais je dois le mettre où ???? moi y'a n'a pas bien comprendre !
à placer avant ceci
<form method="post" action="formulaire2.php3">

<p>
Votre nom :<br /><input type="text" name="nom" size="40" /><br />
Votre Ville: <select name="ville">
<option value"1" <? if ($ville=='1') echo('selected') ?>>Paris</option>
<option value"2" <? if ($ville=='2') echo('selected') ?>>Nantes</option>
<option value"3" <? if ($ville=='2') echo('selected') ?>>Lyon</option>
<option value"4" <? if ($ville=='2') echo('selected') ?>>Marseille</option>
Votre Commentaire :<br /><textarea name="texte" cols="40" rows="3"></textarea>
</p>

<input type="submit" name="Submit" value="Envoyer">
</form>
il s'agit d'un opérateur ternaire
on verifi l'existence de la variable $_POST['ville'] (donc si un choix a été fait et le formulaire validé)... si la variable existe alors on l'affecte a $ville si elle n'existe pas on affecte la valeur "" (NULL) par défaut.