Page 1 sur 1

Formulaire à plusieurs étapes

Posté : 03 nov. 2010, 13:42
par sam01
Bonjour à tous,

voilà j'ai un formulaire à plusieurs étapes :

étape 1) l'internaute met son adresse postale, son mail et son mot de passe

Après validation de l'étape 1, j'inscris ces données dans la base de données

étape 2) C'est la description de son appartement
à ce moment pas d'insert dans la base de données

étape 3) description des alentours du logement (situation, activité, description plus approfondie)

à ce moment insert dans la base de données

étape 4) choix de la destination ou veux aller l'internaute

insert dans la base de donnée

étape 5) validation définitive de l'inscription



Si l'internaute ( qui est en cours d'inscription) en est à l'étape 4, et qu'il se rend compte qu'il s'est trompé dans l'étape 2,
il ne peut plus revenir en arrière car dans l'étape 3 j'ai effectué un insert dans la base de données...

Comment dois-je m'y prendre afin q'un internaute puisse aller dans les étapes précédentes alors qu'il est cours d'inscription...
Faut-il que 'alimente la base de données uniquement à la dernière étape et garder tout en session ?

Merci d'avance pour votre aide.

Re: Formulaire à plusieurs étapes

Posté : 03 nov. 2010, 13:45
par Shim
Bonjour,

formulaire pour quel genre de services ?

Re: Formulaire à plusieurs étapes

Posté : 03 nov. 2010, 14:37
par Mazarini
Bonjour,

Je suis plutôt partisan de conserver les données d'un écran à l'autre avec des <input type="hidden"....>.

Par contre, il faut vérifier toutes les données avant l'insert final en plus du controle après chaque page pour éviter les fraudes.

Re: Formulaire à plusieurs étapes

Posté : 03 nov. 2010, 15:04
par Shim
je ferais :
-un formulaire inscription au site
qui comprend : le logement et l'identité
ca doit tenir sur une page (et modifiable via son profil tu trouvera ca sur google)

-et un formulaire style "panier e-commerce" avec son souhaite de destination (modifiable sur le profil aussi, mais dans une seconde partie

Re: Formulaire à plusieurs étapes

Posté : 03 nov. 2010, 16:25
par AB
Et pourquoi pas les variables de $_SESSION pour mémoriser les données d'une page à l'autre ?

Re: Formulaire à plusieurs étapes

Posté : 03 nov. 2010, 17:19
par sam01
Bon,

ben je vois qu'il n'y a pas La Méthode idéale...

Je pense que je vais opter pour les sessions, et faire un insert final à la fin des 5 étapes...

Re: Formulaire à plusieurs étapes

Posté : 04 nov. 2010, 00:22
par AB
ça me semble le plus simple.

Re: Formulaire à plusieurs étapes

Posté : 03 oct. 2012, 12:53
par acidenitr0s
Bonjour je redéterre encore un topic :)

mais je suit intéresser par la méthode des Input "hidden" pouvait-vous en dire plus sur la procédure à sur d'une étape à l'autre ?

Merci

Re: Formulaire à plusieurs étapes

Posté : 03 oct. 2012, 13:03
par Mazarini
Cela consiste à faire comme si l'utilisateur saisissait tout le formulaire. Les input hidden se comportent comme des input text sauf qu'ils ne sont pas visible.

Pour chaque page, tu ajoutes les zones des autres pages en invisible avec les valeurs déjà saisie ou initialisée.

Re: Formulaire à plusieurs étapes

Posté : 03 oct. 2012, 16:34
par piotrowski-s
sinon pour ceux qui ne saven pas faire en jquery et css il est peut être plus simple d'utiliser du "préfait" comme ici http://webexpedition18.com/download/sig ... edition18/

Re: Formulaire à plusieurs étapes

Posté : 03 oct. 2012, 18:40
par sirakawa
Cela consiste à faire comme si l'utilisateur saisissait tout le formulaire. Les input hidden se comportent comme des input text sauf qu'ils ne sont pas visible.

Pour chaque page, tu ajoutes les zones des autres pages en invisible avec les valeurs déjà saisie ou initialisée.
Absolument d'accord avec Moogli sur le fait qu'il ne faut rien inscrire dans la BDD tant qu'on n'arrive pas à la fin d'une inscription. Car il faudrait les modifier en cas de repentir du client potentiel....
Développement succinct de Mazarini:
page 1:
<?PHP
$nom = isset($_POST['nom']) ? $_POST['nom'] : "";
$formulaire =
"<form .....>
<input type = 'text' name = 'nom' value = '$nom' />";
//etc
print "$formulaire";*
?>
page 2
<?PHP
$nom = isset($_POST['nom']) ? $_POST['nom'] : "";
$formulaire =
"<form .....>
<input type = 'hidden'  name = 'nom' value = '$nom' />";
//etc
print "$formulaire";
?>