Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 15/02/2008, 14h13   #1
Invité(e)
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Par défaut Mettre données d'une liste déroulante dans un champ grace à des boutons

Bonjour
Voici l'adresse de mon formulaire : http://chicochaleur.pirahack.info/formulaire/test.php

Et voici le code source :
Code :
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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
 
<?php
 
// On vérifie si la fonction ini_set() a été désactivée...
$desactive = ini_get('disable_functions');
if (preg_match("/ini_set/i", "$desactive") == 0) {
// Si elle n'est pas désactivée, on définit ini_set de manière à n'afficher que les erreurs...
ini_set("error_reporting" , "E_ALL & ~E_NOTICE");
}
 
// Vérifier que le formulaire a été envoyé...
if (isset($_POST['envoi'])) {
 
 
//On commence une session pour enregistrer les variables du formulaire...
 
session_start();
 
$_SESSION['champ1'] = $_POST['champ1'];
$_SESSION['zone_email1'] = $_POST['zone_email1'];
$_SESSION['liste1'] = $_POST['liste1'];
$_SESSION['liste2'] = $_POST['liste2'];
 
//Evaluation du bouton 1 ...
switch($_POST['bouton1']) {
case "Oui":
$_SESSION['bouton1'] = "Oui";
break;
case "Non":
$_SESSION['bouton1'] = "Non";
break;
default:
$_SESSION['bouton1'] = "";
} // Fin du switch...
 
//Enregistrement des zones de texte...
$_SESSION['zone_texte1'] = $_POST['zone_texte1'];
$_SESSION['zone_texte2'] = $_POST['zone_texte2'];
$_SESSION['zone_texte3'] = $_POST['zone_texte3'];
 
// Définir l\'icone apparaissant en cas d\'erreur...
 
 
// Définir sur 0 pour afficher un petit x de couleur rouge.
// Définir sur 1 pour afficher l\'image d\'une croix rouge telle que celle utilisée dans l\'assistant
// Si vous utilisez l\'option 1, l\'image de la croix rouge \'icone.gif\' doit se trouver dans le répertoire \'images\',
// ce dernier devant se trouver au même niveau que votre formulaire...
$flag_icone = 0;
 
// On vérifie si $flag_icone est défini sur 0 ou 1...
if ($flag_icone == 0) {
$icone = "<b><font size=\"3\" face=\"Arial, Verdana, Helvetica, sans-serif\" color=\"#CC0000\">x</font></b>";
} else {
$icone = "<img src=\"images/icone.gif\"";
}
 
// Définir l'indicateur d'erreur sur zéro...
$flag_erreur = 0;
// N'envoyer le formulaire que s'il n'y a pas d'erreurs...
if ($flag_erreur == 0) {                   
 
// Addresse de réception du formulaire
$email_dest = "mail@mail.fr";
$sujet = "Formulaire bien recu, il sera traité dans les plus brefs délais";
$entetes ="MIME-Version: 1.0 \n";
    $entetes .="From: Matériels<toto@totocom>\n";
    $entetes .="Return-Path: Matériels<toto@centrapel.com>\n";
    $entetes .="Reply-To: Matérielstoto@centrapel.com>\n";
    $entetes .="Content-Type: text/html; charset=iso-8859-1 \n";
    $partie_entete = "<html>\n<head>\n<title>Formulaire</title>\n<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>\n</head>\n<body bgcolor=#FFFFFF>\n";
 
 
//Partie HTML de l'e-mail...
$partie_champs_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Merci d'indiquez votre nom = " . $_SESSION['champ1'] . "</font><br>\n";
$partie_zone_email .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Merci d'indiquez votre adresse Email pour la confirmation de la commande = " . $_SESSION['zone_email1'] . "</font><br>\n";
$partie_listes .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Matériels = " . $_SESSION['liste1'] . "</font><br>\n";
$partie_listes .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Quantité = " . $_SESSION['liste2'] . "</font><br>\n";
$partie_boutons .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Habitez-vous sur Paris? = " . $_SESSION['bouton1'] . "</font><br>\n";
$partie_zone_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Merci d'indiquez l'adresse de livraison = " . $_SESSION['zone_texte1'] . "</font><br>\n";
$partie_zone_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Si vous avez des commentaires ou autre sur la commande = " . $_SESSION['zone_texte2'] . "</font><br>\n";
$partie_zone_texte .= "<font face=\"Verdana\" size=\"2\" color=\"#003366\">Récapitulatif de votre commande = " . $_SESSION['zone_texte3'] . "</font><br>\n";
 
 
                    // Fin du message HTML
                    $fin = "</body></html>\n\n";
 
                    $sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_listes . $partie_boutons . $partie_cases . $partie_zone_texte . $fin;
 
 
                    // Send the e-mail
                    if (@!mail($email_dest,$sujet,$sortie,$entetes)) {
                    echo("Envoi du formulaire impossible");
                    exit();
                    } else {
 
                    // Rediriger vers la page de remerciement
                    header("Location:http://chicochaleur.myftp.org/merci.html");
                    exit();
                  } // Fin else
                } // Fin du if ($flag_erreur == 0) {
            } // Fin de if POST
?>
<html>
<head>
<script language="javascript">
function changer_couleurs() {
document.fgColor=document.form.fgColor.value
document.bgColor=document.form.bgColor.value
}
</script>
</head>
<body>
<form name="form">
<select size="1" name="bgColor" onclick="changer_couleurs()">
<option>Choisissez une couleur de fond</option>
<option value="Blue">Bleu</option>
<option value="Red">Rouge</option>
<option value="Green">Vert</option>
<option value="Yellow">Jaune</option>
<option value="Orange">Orange</option>
<option value="Violet">Violet</option>
<option value="Navy">Bleu foncé</option>
</select>
 
<select size="1" name="fgColor" onclick="changer_couleurs()">
<option>Choisissez une couleur de police</option>
<option value="Blue">Bleu</option>
<option value="Red">Rouge</option>
<option value="Green">Vert</option>
<option value="Yellow">Jaune</option>
<option value="Orange">Orange</option>
<option value="Violet">Violet</option>
<option value="Navy">Bleu foncé</option>
</select>
 
</form>
</body>
</html>
<html>
<head><script language="JavaScript">
<!--
function Retour()
{
document.write('<form><input type="button" value="Retour" onclick="history.back();"></form>');
}
-->
</script>
<title>Formulaire</title><script language="JavaScript">
 
 
function verifSelection() {
 
 
if (document.mail_form.champ1.value == "") {
alert("Merci d\'indiquez votre nom")
return false
}
 
if (document.mail_form.zone_email1.value == "") {
alert("Merci d\'indiquez votre adresse Email")
return false
}
 
invalidChars = " /:,;'"
 
for (i=0; i < invalidChars.length; i++) {    // does it contain any invalid characters?
badChar = invalidChars.charAt(i)
 
if (document.mail_form.zone_email1.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
document.mail_form.zone_email1.focus()
return false
}
}
 
atPos = document.mail_form.zone_email1.value.indexOf("@",1)            // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}
 
if (document.mail_form.zone_email1.value.indexOf("@",atPos+1) != -1) {    // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}
 
periodPos = document.mail_form.zone_email1.value.indexOf(".",atPos)
 
if (periodPos == -1) {                    // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}
 
if (periodPos+3 > document.mail_form.zone_email1.value.length)    {        // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
document.mail_form.zone_email1.focus()
return false
}
 
if (document.mail_form.liste1.value == "") {
alert("Merci de choisir un matériel")
return false
}
 
if (document.mail_form.liste2.value == "") {
alert("Merci de choisir la quantitée")
return false
}
 
nbreboutons1 = document.mail_form.bouton1.length
 
    flag = 0
 
        for (i = 0; i < nbreboutons1 ; i++) {
 
            if (document.mail_form.bouton1[i].checked) {
 
            flag = 1
 
            }
 
        }
 
 
if (flag == 0) {
 
alert("Merci de préciser de lieu où vous résidez")
return false;
}
 
 
if (document.mail_form.zone_texte1.value == "") {
alert("Merci de remplir l\'adresse de livraison")
return false
}
 
} // Fin de la fonction
</script>
</head><body><form name="mail_form" method="post" action="<?=$_SERVER['PHP_SELF']?>" onSubmit="return verifSelection()">
  <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong>Formulaire
    d'envoi de Matériels</strong></font></div><br><table align="center" width="566" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td height="16"><div align="center">
  <font color="#CC0000" size="2" face="Verdana, Arial, Helvetica, sans-serif, Tahoma"><strong><?php
if ($erreur_champ1) {
      echo(stripslashes($erreur_champ1));
      } else {
if ($erreur_email1) {
      echo(stripslashes($erreur_email1));
      } else {
if ($erreur_liste1) {
      echo(stripslashes($erreur_liste1));
      } else {
if ($erreur_liste2) {
      echo(stripslashes($erreur_liste2));
      } else {
if ($erreur_bouton1) {
      echo(stripslashes($erreur_bouton1));
      } else {
if ($erreur_texte1) {
      echo(stripslashes($erreur_texte1));
      } else {
if ($erreur_texte2) {
      echo(stripslashes($erreur_texte2));
      } else {
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
} // Fin du else...
?>
    </strong></font>
    </div></td>
      </tr>
    </table>
<p align="center"></p><table width="566" border="0" align="center"><tr>
      <td width="140"><div align="right"><font face="Verdana" size="2">Merci d'indiquez votre Nom</font></div></td>
      <td align="center" valign="middle" width="30">
      <?php
      if ($erreur_champ1) {
      echo($icone);
      }
      ?>
      </td>
      <td><input name="champ1" type="text" value="<?=stripslashes($_SESSION['champ1']);?>"></td>
    </tr></table><table width="566" border="0" align="center"><tr>
      <td width="140"><div align="right"><font face="Verdana" size="2">Merci d'indiquez votre Adresse Email pour la confirmation de la commande</font></div></td>
      <td width="30" align="center" valign="middle">
      <?php
      if ($erreur_email1) {
      echo($icone);
      }
      ?>
      </td>
      <td><input name="zone_email1" type="text" value="<?=stripslashes($_SESSION['zone_email1']);?>"></td>
    </tr></table><table width="566" border="0" align="center"><tr>
      <td width="140"><div align="right"><font face="Verdana" size="2">Matériels</font></div></td>
      <td width="30" align="center" valign="middle">
      <?php
      if ($erreur_liste1) {
      echo($icone);
      }
      ?>
      </td>
      <td><select name="liste1" style="width:200"><option value="">Sélectionner...</option>
<option value="Griffon"<?php
if ($_SESSION['liste1'] == "Griffon") {
echo(" selected");
}
?>>Griffon</option>
<option value="Sctochlocks"<?php
if ($_SESSION['liste1'] == "Sctochlocks") {
echo(" selected");
}
?>>Sctochlocks</option>
<option value="Sucettes"<?php
if ($_SESSION['liste1'] == "Sucettes") {
echo(" selected");
}
?>>Sucettes</option>
</select></td></tr></table><table width="566" border="0" align="center"><tr>
      <td width="140"><div align="right"><font face="Verdana" size="2">Quantité</font></div></td>
      <td width="30" align="center" valign="middle">
      <?php
      if ($erreur_liste2) {
      echo($icone);
      }
      ?>
      </td>
      <td><select name="liste2" style="width:40"><option value="">...</option>
<option value="1"<?php
if ($_SESSION['liste2'] == "1") {
echo(" selected");
}
?>>1</option>
<option value="2"<?php
if ($_SESSION['liste2'] == "2") {
echo(" selected");
}
?>>2</option>
<option value="3"<?php
if ($_SESSION['liste2'] == "3") {
echo(" selected");
}
?>>3</option>
<option value="4"<?php
if ($_SESSION['liste2'] == "4") {
echo(" selected");
}
?>>4</option>
<option value="5"<?php
if ($_SESSION['liste2'] == "5") {
echo(" selected");
}
?>>5</option>
<option value="6"<?php
if ($_SESSION['liste2'] == "6") {
echo(" selected");
}
?>>6</option>
<option value="7"<?php
if ($_SESSION['liste2'] == "7") {
echo(" selected");
}
?>>7</option>
<option value="8"<?php
if ($_SESSION['liste2'] == "8") {
echo(" selected");
}
?>>8</option>
<option value="9"<?php
if ($_SESSION['liste2'] == "9") {
echo(" selected");
}
?>>9</option>
<option value="10"<?php
if ($_SESSION['liste2'] == "10") {
echo(" selected");
}
?>>10</option>
</select></td></tr></table><table width="566" border="0" align="center"><tr>
      <td width="140"><div align="left"><font face="Verdana" size="2">Habitez-vous sur Paris?</font></div></td>
      <td width="30" align="left" valign="middle">
   <?php
   if ($erreur_bouton1) {
   echo($icone);
   }
   ?>
   </td>
      <td width="200" align="left"><input type="radio" name="button1" value="oui" onclick="document.getElementById('adres').style.display='none';document.getElementById('adres1').style.display='none';"><font face="Verdana" size="2">Oui</font>
<td width="100" align="left"><input type="radio" name="button1" value="non" onclick="document.getElementById('adres').style.display='block';document.getElementById('adres1').style.display='block';">
<font face="Verdana" size="2">Non</font></td></tr></table><td width="140" valign="top"><div align="center"><font face="Verdana" size="2"><table width="566" border="0" align="center"><tr>
      <td width="140" valign="top"><div align="right" id="adres1" style="display:<?php echo ($_SESSION['button1']== 'oui' ? 'none' : 'block');?>;"><font face="Verdana" size="2">Merci d'indiquez l'adresse de livraison</font></div></td>
      <td width="30" align="center" valign="top">
   <?php
   if ($erreur_texte1) {
   echo($icone);
   }
   ?>
   </td>
      <td><textarea id="adres" style="display:<?php echo ($_SESSION['button1']== 'oui' ? 'none' : 'block');?>;" name="zone_texte1" cols="45" rows="5"><?=stripslashes($_SESSION['zone_texte1']);?></textarea></td>
    </tr>
 
</table><table width="566" border="0" align="center"><tr>
      <td width="140" valign="top"><div align="right"><font face="Verdana" size="2">Si vous avez des commentaires ou autre sur la commande</font></div></td>
      <td width="25" align="center" valign="top">
      <?php
      if ($erreur_texte2) {
      echo($icone);
      }
      ?>
      </td>
      <td><textarea name="zone_texte2" cols="45" rows="2"><?=stripslashes($_SESSION['zone_texte2']);?></textarea></td>
    </tr><td width="30" align="center" valign="top"></table><table width="566" border="0" align="center"><td width="30" align="center" valign="top"><tr><div align="center"><font face="Verdana" size="2">Voici le récapitulatif de votre commande</font></div></td>
 
      <?php
      if ($erreur_texte3) {
      echo($icone);
      }
      ?>
      </td>
      <tr><textarea name="zone_texte3" cols="70" rows="5"><?=stripslashes($_SESSION['zone_texte3']);?></textarea></td><td width="140" valign="top"><div align="right"><font face="Verdana" size="2"><input type="submit" value="Ajouter un article" onclick=";">
      <td width="140" valign="top"><div align="left"><font face="Verdana" size="2"><input type="submit" value="Supprimer un article" onclick=";">
    </tr></table><table width="566" border="0" align="center">
    &nbsp;
          <table width="566" border="0" align="center">
           <td valign="top"><div align="center">
<script language="JavaScript">Retour()</script><input type="reset" name="Reset" value=" Effacer tout ">
&nbsp;
          <input type="submit" name="envoi" value="Envoyer">
        </div></td></tr></table><div align="center"><input name="nbre_fichiers" type="hidden" id="nbre_fichiers" value=""></div></form></body></html>


Donc j'aimerai faire fonctionner mes boutons "ajouter" et "supprimer"
Quand on clique sur "ajouter" ca doit ajouter ce que la personne à choisis dans les liste déroulante dans le champ récapitulalif de la commande
Et quand on clique sur supprimer, ca doit supprimer dans le champs récapitulatif de la commande, juste l'article qui faut supprimer
Donc j'aimerai voir un truc en ligne

par exemple, elle choisi 5 griffons et 2 sucettes
ca devrai afficher dans le champs récapitulatif de la commande

5 griffons
2 succettes

Et si la personne se trompe, si elle clique sur 2 sucettes par exemple et ensuite qu'elle clique sur supprimer, ca supprimer juste 2 sucettes et les 5 griffons sont garder

C'est assez compliquer à faire je pense, mais je n'ai aucune idée de comment faire!

Merci d'avance!

Dernière modification par Celira ; 15/02/2008 à 17h32.
  Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 14h45   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 453
Points : 5 453
Bonjour et bienvenue sur le forum

Deux possibilités : soit tu utilises du javascript avec un événement onchange ou onselect pour mettre à jour ton formulaire à chaque sélection ou tu rediriges l'actualisation de ton formulaire vers lui-même, soit tu utilises une sélection multiple.
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 14h48   #3
Membre éprouvé
 
Développeur Web
Inscription : avril 2005
Messages : 395
Détails du profil
Informations personnelles :
Âge : 28

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 395
Points : 479
Points : 479
et si jamais l'envie te viens :

tuto panier :
http://jcrozier.developpez.com/articles/web/panier/
__________________
Zend PHP5 Certification
MySQL 4 Core Certification
Gats est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Mettre Résolu
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web