formulaire sur plusieurs pages

mackougan
Invité n'ayant pas de compte PHPfrance

12 oct. 2005, 16:04

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 !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 oct. 2005, 16:06

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>';?>"
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

mackougan
Invité n'ayant pas de compte PHPfrance

12 oct. 2005, 16:21

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 !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 oct. 2005, 16:27

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:
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

mackougan
Invité n'ayant pas de compte PHPfrance

12 oct. 2005, 16:40

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.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 oct. 2005, 16:43

o fait JE SIGNE maintenant :wink:
Tu pourrais t'inscrire par exemple :rool:
C'est gratuit et tu peux mettre ton sujet en [RESOLU] ;)
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

Petit nouveau ! | 4 Messages

12 oct. 2005, 17:10

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 oct. 2005, 17:29

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>
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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

12 oct. 2005, 20:10

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 4 Messages

13 oct. 2005, 10:08

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]

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

13 oct. 2005, 13:41

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.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute