Bonjour,
Je travaille sur un formulaire assez long avec validation des champs en php.
Certain champs sont obligatoires.
Si l'internaute oubli un champs après validation PHP bloque le déroulement du test avec un message qui indique le champs concerné.
Jusque la rien de nouveau.
Le pblm c'est que quand l'internaute revient au formulaire tous les champs sont vides....
J'ai donc créé des variables en session pour les champs saisis.
En ce qui concerne les champs de texte pas de pblm cela fonctionne....
Pour les listes déroulant...hum c'est pas gagné.
Voici mon pblm :
Quand je valide pour la première fois mon formulaire tout ce déroule normalement, affichage du champs incriminé, retout au formulaire.
Gagné la saisie dans la liste déroulante est bien la:.
Je revalide pour 2ième fois mon formulaire tjr en oubliant de saisir un champs. déroulement avec message sur le champs incriminé.
Donc je reviens à mon formulaire et la....
La saisie dans ma liste déroulante à disparue; en faite la variable de ma session c'est réinitialisée.
Et la je bloque grave.
Voici mon code sur la 1er page :
Sur ma feuille de validation PHP le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <form action="traitement_devis.php" method="post"> <!--RENSEIGNEMENTS SUR ETABLISSEMENT--> <fieldset > <legend>Renseignements sur votre établissements</legend> <p> <label class="red">Le status de votre étabblissement :</label> <select name="status" id="status"> <option value="" selected="selected" ><?php if (!empty($_SESSION["status"])) {echo htmlspecialchars($_SESSION["status"]);} ?></option> <option value="société" >Société</option> <option value="PME">PME</option> <option value="Commerce">Commerce</option> <option value="Agence Immobilière">Agence Immobilière</option> <option value="Profession Libérale">Profession libérale</option> <option value="Auto entreprenneur">Auto-entreprenneur</option> <option value="Association">Association</option> <option value="Particuliers">Particulier</option> <option value="Autre">Autre</option> </select> </p> <p> <label class="red" for="activite">Votre activité :</label> <input name="activite" size="30" id="act" maxlength="27" value="<?php if (!empty($_SESSION["activite"])) {echo htmlspecialchars($_SESSION["activite"]);}?>" type="text"/> <p> <label class="red">Public ciblé :</label> <input type="text" name="public" size="30" maxlength="27" value="<?php if (!empty($_SESSION["public"])) { echo htmlspecialchars($_SESSION["public"]);}?>" / </p> <p> <label class="red">Entreprise en cours de création :</label> <select name="entrcreation" id="ent"> <option value="<?php if (!empty($_SESSION["entrcreation"])){echo htmlspecialchars($_SESSION['entrcreation']);}else{echo '?';}?>" selected="selected">?</option> <option value="oui">Oui</option> <option value="Non">Non</option> </select></p> </fieldset>
Ensuite le code PHP gère l'envoi du mail si tout est ok plus haut.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <!--**** TRAITEMENT DU FORMULAIRE *************--> <?php // Traitement des oublis champs $status = $_POST["status"]; $activite = $_POST["activite"]; $public = $_POST["public"]; $entrcreation = $_POST["entrcreation"]; //Mise en mémoire des champs remplis $_SESSION["status"] = $status; $_SESSION["activite"] = $activite; $_SESSION["public"] = $public; $_SESSION["entrcreation"] = $entrcreation; if(empty($status) OR empty($activite) OR empty($public) OR empty($entrcreation)) echo '<p class="oubli_champs">Vous avez oublié des champs..!</p>'; if(empty($status)) { echo '<p class="champs_manquants">Vous devez choisir le status de votre établissement !</p>'; } if(empty($activite)) { echo '<p class="champs_manquants">Vous devez indiquer votre activité !</p>'; } if(empty($public)) { echo '<p class="champs_manquants">Vous devez indiquer le type de public ciblé ! !</p>'; } if(empty($entrcreation)) { echo '<p class="champs_manquants">Vous devez indiquer si c'est une création ou non !</p>'; } echo '<p class="retour"><a href="devis.php">Retour au formulaire</a></p>';include("include/footer.php");exit(0); { else }
Je dois dire que je suis débutant en PHP.....
Si qq pouvait me donner un tuyau se serait super sympas
Merci à tous
Partager