Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/03/2011, 12h43   #1
Invité de passage
 
Inscription : mars 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 2
Points : 1
Points : 1
Par défaut Données de 2 formulaires en mémoire.

Bonjour,

Voici mon petit souci(je vais essayer d'être le plus clair possible^^)

J'utilise un formulaire1.php dans lequel j'ai mis un bouton type submit qui est validé si ce seul formulaire est nécessaire et il me fait mon DocumentFini.php

Çà, pas de souci, çà marche^^

Dans ce formulaire (Formulaire1.php), j'ai crée un deuxième bouton si les gens ont besoin de remplir un second formulaire (Formulaire2.php) que j'ai "encapsulé dans un <a href="Formulaire2.php" (voir plus bas...)

L'appel de ce second formulaire fonctionne.

La validation de ce second formulaire doit me finaliser mon DocumentFini.php. Il le fait mais ne conserve que les données de ce dernier formulaire et plus celles du premier

J'ai lu çà et là qu'on pouvait utiliser les variables de session mais je ne sais comment les placer dans le code pour parer ce problème.

Simplifiés, mes fichiers donnent quelque chose comme çà:

Formulaire1.php

Code :
1
2
3
4
5
6
7
<form action=DocumentFini.php method="POST">
 
    <input type="text" name="infoForm1">
 
    <input type="submit" value="Formulaire1 seulement">
    <a href="Formulaire2.php"><input type="button" value="Accès au second Form."></a>
</form>
Formulaire2.php
Code :
1
2
3
4
5
6
7
8
 
<form action=DocumentFini.php method="POST">
 
    <input type="text" name="infoForm2">
 
    <input type="submit" value="Validation des Formulaires">
 
</form>
DocumentFini.php
(...)
Code :
1
2
3
4
5
6
7
8
9
10
<? echo $_POST['inform1']; ?>(...)
 
//test si besoin d'une seconde page pour les données du second form
    <? 
    $test = $_POST['inform2']; 
    if ($test != ""){
        echo $_POST['inform2']; ...
 
    }
   ?>

Merci par avance de l'aide que vous voudrez bien m'apporter.
Alain_83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 17h39   #2
Membre éprouvé
 
Homme Gaetan
Webmaster
Inscription : janvier 2007
Messages : 386
Détails du profil
Informations personnelles :
Nom : Homme Gaetan
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Biens de consommation

Informations forums :
Inscription : janvier 2007
Messages : 386
Points : 441
Points : 441
Envoyer un message via MSN à Gaetan_
Rajoute dans formulaire2 un champs hidden

Code :
1
2
3
4
5
6
7
8
<form action=DocumentFini.php method="POST">
 
<INPUT TYPE="hidden" NAME="infoForm1" VALUE="<?php echo $infoForm1; ?>">
 
<input type="text" name="infoForm2">
<input type="submit" value="Validation des Formulaires">
 
</form>
et pense à déclarer tes variables

Code :
$infoForm1= $_POST['infoForm1'];
Gaetan_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 08h59   #3
Invité de passage
 
Inscription : mars 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 2
Points : 1
Points : 1
Merci Gaetan pour ta réponse.

Ta solution était jouable mais longue à mettre en œuvre pour un formulaire complexe.
J'ai en fait contourné le problème avec un partie de ton idée en réunissant les deux formulaires en un avec deux "div" dont une cachée.
En sélectionnant le bouton pour afficher le second, j'ai fait un petit script qui rends la div active invisible et la seconde visible.
La validation via mon bouton submit crée mon état final.

On m'a parlé d'Ajax qui rends la vie plus facile aussi mais je n'en suis pas encore là
Alain_83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h27.


 
 
 
 
Partenaires

Hébergement Web