Formulaire en plusieurs pages

Eléphant du PHP | 424 Messages

27 juil. 2006, 17:17

Bonjour à tous !

Je souhaite faire un formulaire de demande de devis pour ma société et je me demande comment il faut procéder pour réaliser un formulaire en plusieurs étapes et sur plusieurs pages.

Par exemple je demande sur la premiere page les coordonnées de la personne avec son adresse etc...
Sur la seconde page je demande les informations sur sa maison ou appartement etc...

Comment dois je procéder ? dois je créer une page à chaque fois ? et si oui comment faire retenir les informations ?
Merci pour votre aide
Youpi Youpi Yo !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 juil. 2006, 17:47

Il te faut effectivement découper ton formulaire (pas nécessairement sur plusieurs pages, tu peux tout mettre sur une seule et tester un paramètre pour savoir quelle partie tu affiches.

Pour conserver les données avant la validation finale, il te faut utiliser les session, afin de pouvoir les stocker en mémoire sur le serveur le temps de les compléter :)

Eléphanteau du PHP | 10 Messages

27 juil. 2006, 17:48

ben pour stocker les info de formulaire en formulaire, tu n'a k memoriser les valeurs de ton formulaire "precedent" dans des champ hidden (caché) dans ton "nouveau" formulaire.

par exemple la page 1 contient le nom.
dans la page 2,qui contient prenom, tu ajoute un champ <input type=hidden name=nom value=$_POST["nom"]>

dans la page 3, qui contient.., tu ajoute les champs
<input type=hidden name=nom value=$_POST["nom"]>
<input type=hidden name=prenom value=$_POST["prenom"]>

a la syntaxe près

en fait le principe c'est de transmettre les param de page en page

j'espere t'avoir aider un peu

Eléphant du PHP | 88 Messages

27 juil. 2006, 17:50

Salut!

tu peux créer un fichier pour chaque page et envoyer les résultats d'une page à l'autre en récuperant tes variables POST au début de tes pages.

Ensuite,
* soit tu traites page par page les données.
Si la page i est traitée(INSERT, UPDATE...), tu peux passer a la page
i+1;
* soit tu ajoutes des <input type="hidden" name="tavariable"> pour
chacune des variables des pages précédentes et tu traites toutes tes
pages à la fin;

Bon courage

Eléphant du PHP | 424 Messages

28 juil. 2006, 16:08

Ok le fait de memoriser avec des champs hidden fonctionne parfaitement !

Si le client se trouve sur la page 4 et qu'il veut revenir sur la page 1 est ce que les données seront gardées en mémoire ?

Merci
Youpi Youpi Yo !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

28 juil. 2006, 16:46

Oui si tu utilises les sessions.. sinon il te faut sur chacune de tes pages mettre tous les champs de ton formulaire (en hidden pour ceux qui sont sur d'autres pages) et reposter tout le formulaire en direction des pages qu'il veut modifier. Ce qui a mon avis est particulièrement lourd et difficile à maintenir (si tu modifies un champ faut aller le modifier sur chaque page...)

Très hônnetement, regarde comment fonctionnent les sessions, c'est tout simple et tout à fait adapté. En gros c'est un tableau qui reste en mémoire quelle que soit la page que tu consultes. Tu stockes dedans les données que tu veux conserver (genre les données de ta page 1) et tu peux les interroger à n'importe quel moment (soit quand l'utilisateur valide à la fin, soit quand il revient sur la page 1 pour pré renseigner les champs) :)

Eléphant du PHP | 424 Messages

28 juil. 2006, 17:03

Re à tous !

J'ai suivi le tuto php france sur les sessions :

http://www.phpfrance.com/tutoriaux/inde ... ssions-php

et franchement ca marche nikel ! je pensais pas que les sessions étaient si simple !

merci pour votre aide :D
Youpi Youpi Yo !

Eléphant du PHP | 88 Messages

28 juil. 2006, 17:57

Merci pour le lien sur les sessions!

Alors un petit résolu serait le bienvenue!

Eléphant du PHP | 424 Messages

29 juil. 2006, 10:53

RE à tous !

Je reviens vers vous au sujet de ma session , en effet je n'arrive pas à indiquer une valeur de session à un bouton radio :

comment il insérer le "<?
echo $_SESSION['premass'] ?>" dans un bouton radio de type : <input type="radio" name="premass" value="" />

Dans value ca n fonctionne pas ! merci pour votre aide
Youpi Youpi Yo !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

29 juil. 2006, 12:01

Un bouton radio doit être coché donc "checked". Pour savoir s'il doit être coché ou non suffit de vérifier son existence et son contenu:
<?php
$checked = (isset($_SESSION['premass']) && $_SESSION['premass']=="une_valeur") ? "checked='checked'" : "" ;
?>
<input type="radio" name="premass" value="une_valeur" <?php echo $checked; ?>/>

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

Eléphant du PHP | 424 Messages

29 juil. 2006, 12:41

IMPECABLE !

Merci beaucoup
Youpi Youpi Yo !