Bonjour,
J'ai un formulaire de saisi (exemple transmis) avec un formulaire optionnel. Le traitement se fait par l'intermédiaire de la page de traitement_formulaire.php. En cas de mauvaise saisie, la page formulaire.php se charge via un include.
Le problème : au rechargement de la page, je souhaiterai que si l'utilisateur à saisi "Projet", le formulaire optionnel s'affiche automatiquement.
J'ai à peu près tout essayé mais mes connaissances en javascript sont assez limitées.
La page onChange.php :
La page de traitement : traitement_formulaire.php
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 <!doctype html> <html> <head> <meta charset='utf-8'> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="styles.css"> <link rel="icon" type="image/png" href="images/design/ico.png" /> <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> <script src="script.js"></script> <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> <title>Administrer le Site</title> </head> <script type="text/javascript"> // Fonction permettant l'affichage du formulaire si l'utilisateur sélectionne "Projet" function changementType() { // On définit la variable sélectionnée var type = document.getElementById("type").value; if (type == "Projet") { // Affichage du formulaire document.getElementById("fournisseur").style="display:block"; } else { // Le formulaire est masqué document.getElementById("fournisseur").style="display:none"; } } </script> <body> <div id="formulaire"> <!--Le traitement des informations : traitement_formulaire.php --> <form method="post" action="traitement_formulaire.php"> <div> <label for="fonction">Fonction : </label><br/> <input type="text" name="fonction" id="fonction" value=""/><br/> <label for="type">Type : </label><br/> <select id="type" name="type" size="1" onchange="changementType();"> <option value="Emploi">Emploi <option value="Stage" >Stage <option value="Projet">Projet </select> </div> <!--Formulaire en option --> <div style="display:none;" id="fournisseur"> <div class="name"> <label for="name">Your Name:</label> <p> Please enter your full name</p> <input type="text" name="name" id="name" value=""/> </div> </div> <!-- Bouton de validation --> <input type="submit" name="submit" value="Submit" /> </form> </div> </body> </html>
Le formulaire : formulaire.php
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169 <!doctype html> <html> <head> <meta charset='utf-8'> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="styles.css"> <link rel="icon" type="image/png" href="images/design/ico.png" /> <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> <script src="script.js"></script> <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> <title>Administrer le Site</title> </head> <body> <?php if (!empty($_POST['submit'])){ //=============================================== // Définition des Regex //=============================================== $form_nom= "/^([a-zA-Z'àâéèêôùûïçÀÂÉÈÔÙÛÏÇ[:blank:]-]{1,30})$/"; //=============================================== // Traitement de la fonction postée //=============================================== if(!empty($_POST['fonction'])) /* Si le champ est bien rempli*/ { /*Test du format du code postal*/ if(!preg_match($form_nom, $_POST['fonction'])) { $mauvaisFormat[] ="La fonction ne respecte pas le bon format !!!";// Mauvais format } else { $fonction=$_POST['fonction'];// Définition de la variable } } else { $tabloVide[] ="Veuillez renseigner la fonction dans l'entreprise !!!";// Si champ vide } //=============================================== // Traitement du type posté //=============================================== if(!empty($_POST['type'])) /* Si le champ est bien rempli*/ { /*Test du format du code postal*/ if(!preg_match($form_nom, $_POST['type'])) { $mauvaisFormat[] ="Le type ne respecte pas le bon format !!!";// Mauvais format } else { $type=$_POST['type'];// Définition de la variable } } else { $tabloVide[] ="Veuillez renseigner le type dans l'entreprise !!!";// Si champ vide } // Si le type posté est "Projet", l'utilisateur doit saisir son nom if ($type=="Projet"){ //=============================================== // Traitement du nom posté //=============================================== if(!empty($_POST['name'])) /* Si le champ est bien rempli*/ { /*Test du format du code postal*/ if(!preg_match($form_nom, $_POST['name'])) { $mauvaisFormat[] ="Votre nom ne respecte pas le bon format !!!";// Mauvais format } else { $name=$_POST['$form_nom'];// Définition de la variable } } else { $tabloVide[] ="Veuillez renseigner votre nom !!!";// Si champ vide } } // Par la fonction @sizeof on calcul, le nombre d'occurence dans $mauvaisFormat[] et $tabloVide[] if (@sizeof($tabloVide) > 0 or @sizeof($mauvaisFormat) > 0) { //=================================================== // Traitement des champs vides //=================================================== if(@sizeof($tabloVide) > 0) { echo (" <h1>Traitement champs de saisie vide...</h1> <b>Un champ au moins est vide. Vous devez remplir :</b><br> "); //Liste des champs vides foreach($tabloVide as $champsvides) { echo "$champsvides<br/>"; } // Mon problème vient au rechargement du formulaire include("formulaire.php"); exit(); } //=================================================== // Traitement des mauvais formats //=================================================== if(@sizeof($mauvaisFormat) > 0) { echo (" <h1>Traitement champs de saisie incorrect...</h3> <b>Un champ au moins contient une donnée incorrecte. Corrigez :</b><br> "); //Liste des champs incorrects foreach($mauvaisFormat as $champsMauvais) { echo "$champsMauvais<br/>"; } // Mon problème vient au rechargement du formulaire include("formulaire.php"); exit(); } } else{ //=================================================== // Les données postées peuvent être traitées //=================================================== echo (" Votre Nom : <em>".$fonction."</em><br/> Votre Statut : <em>".$type."</em> "); // Toutes des données peuvent être envoyées dans une BDD } } else{echo "<h1>Veuillez Revenir sur le formulaire !!!</h1>";} ?> </body> </html>
Merci pour votre aide.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 <!-- Je souhaiterai qu'au rechargement de cette page, si l'utilisateur a sélectionné "Projet", le formulaire réaffiche le formulaire optionnel --> <?php // On configure le select afin de réaffiché la valeur sélectionnée if ($_POST['type']==""){$selEmploi="SELECTED";} else{$selEmploi="";} if ($_POST['type']==""){$selStage="SELECTED";} else{$selStage="";} if ($_POST['type']==""){$selProjet="SELECTED";} else{$selProjet="";} ?> <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script> <script type="text/javascript"> // Fonction permettant l'affichage du formulaire si l'utilisateur sélectionne "Projet" function changementType() { // On définit la variable sélectionnée var type = document.getElementById("type").value; if (type == "Projet") { // Affichage du formulaire document.getElementById("fournisseur").style="display:block"; } else { // Le formulaire est masqué document.getElementById("fournisseur").style="display:none"; } } </script> <div id="formulaire"> <form method="post" action="traitement_formulaire.php"> <div> <label for="fonction">Fonction : </label><br/> <input type="text" name="fonction" id="fonction" value="<?php echo $_POST['fonction'];?>"/><br/> <label for="type">Type : </label><br/> <select id="type" name="type" size="1" onchange="changementType();"> <option value="Emploi" <?php echo $selEmploi;?> >Emploi <option value="Stage" <?php echo $selStage;?> >Stage <option value="Projet" <?php echo $selProjet;?> >Projet </select> </div> <!--Formulaire en option --> <div style="display:none;" id="fournisseur"> <div class="name"> <label for="name">Your Name:</label> <p> Please enter your full name</p> <input type="text" name="name" id="name" value="<?php echo $_POST['name'];?>"/> </div> </div> <!-- Bouton de validation --> <input type="submit" name="submit" value="Submit" /> </form> </div>
Partager