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 07/01/2012, 18h20   #1
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 1
Points : 1
Par défaut Réafficher la sélection d'une liste déroulante

Bonjour,
J'ai réaliser un formulaire php avec vérification des champs et réaffichage des champs validés. Ca marche très bien pour mes champs textes mais ça ne marche pas du tout (après bien des recherches!) pour les champs de liste déroulante. Ainsi si vous choisissez un élément de la liste "date" sans remplir le champs "nom" un message d'erreur apparaît mais le choix de la liste n'est pas réaffiché.
Voici un bout de mon code php que j'ai simplifié pour vous ;-) .
Merci pour votre aide précieuse !

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
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
 
 
if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
    $etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
 
    // On récupère les champs du formulaire, et on arrange leur mise en forme
    if (isset($_POST["son_nom"])) $_POST["son_nom"]=trim(stripslashes
($_POST["son_nom"])); // trim()  enlève les espaces en début et fin de chaine
 
 
    if (isset($_POST["sa_date"])) $_POST["sa_date"]=trim(stripslashes
($_POST["sa_date"]));
 
 
    // Après la mise en forme, on vérifie la validité des champs
    if (empty($_POST["son_nom"])) { // L'utilisateur n'a pas rempli le champ nom
        $erreur="Vous n'avez pas entr&eacute; votre nom..."; // On met dans erreur le message qui sera affiché
        }
 
        elseif (empty($_POST["sa_date"])) { // L'utilisateur n'a pas rempli le champ date
            $erreur="Vous devez s&eacute;lectionner le jour de votre d&eacute;placement...";
        }
        else { // Si tous les champs sont valides, on change l'état à ok
            $etat="ok";
        }
}
else { // Sinon le formulaire n'a pas été soumis
    $etat="attente"; // On passe donc dans l'état attente
}
 
 
?>
<head>
 
</head>
 
<body>
 
      <?php
if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
    if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
        echo "<div class=\"txt-erreur\">".$erreur."</div>\n"; 
// On affiche le message correspondant à l'erreur
    }
?>
      <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"><input type="hidden" name="type_form" value="Réservation" />
 
 
 
Nom<input name="son_nom" type="text" size="22" value="<?php
        if (!empty($_POST["son_nom"])) {
        // le nom de l'expéditeur a été saisi --> le réafficher
        echo htmlspecialchars($_POST["son_nom"],ENT_QUOTES); 
// htmlspecialchars() convertit les caractères spéciaux en leurs code html, exemple : & devient &amp;
        }
        ?>" />
        <br />
Date <select name="sa_date" value="<?php if($sa_date == "0") { echo ($_POST["sa_date"]); } ?>">
      <option value="0">jour</option>
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
      <option value="10">10</option>
      <option value="11">11</option>
      <option value="12">12</option>
      <option value="13">13</option>
      <option value="14">14</option>
      <option value="15">15</option>
      <option value="16">16</option>
      <option value="17">17</option>
      <option value="18">18</option>
      <option value="19">19</option>
      <option value="20">20</option>
      <option value="21">21</option>
      <option value="22">22</option>
      <option value="23">23</option>
      <option value="24">24</option>
      <option value="25">25</option>
      <option value="26">26</option>
      <option value="27">27</option>
      <option value="28">28</option>
      <option value="29">29</option>
      <option value="30">30</option>
      <option value="31">31</option>
      </select>
    <br />
<input class="bouton-valid" name="envoyer" type="submit" value="envoyer" />
</form>
<?php
}
else { // Sinon l'état est ok donc on envoie le mail
    $type_form = $_POST["type_form"]; // On stocke les variables récupérées du formulaire
	$son_nom = $_POST["son_nom"];
    $sa_date = $_POST["sa_date"];
}
?>
</body>
</html>
wurlitzer7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2012, 00h01   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonsoir,

Quand tu renvois ton formulaire, pour réafficher la valeur sélectionnée il faut que tu recérés ta liste en déterminant à quelle valeur tu dois rattacher l'attribut selected="selected".
Au final tu dois avoir la ligne sélectionnée écrite comme ceci :
Code :
<option value="11" selected="selected">11</option>
Regardes ici
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2012, 20h17   #3
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 1
Points : 1
Merci pour ta réponse mais comment faire pour recréer la liste ?
wurlitzer7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2012, 21h54   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Comme ça :
Code :
1
2
3
4
5
6
7
8
9
<select name="sa_date">
   <?php
   for($i = 0; $i < 32; ++$i):
      $value = ($i === 0) ? 'Jour' : $i;
      $selected = ($i == $_POST['sa_date']) ? ' selected="selected"' : null;
   ?>
   <option value="<?php echo $i; ?>"<?php echo $selected; ?>><?php echo $value; ?></option>
   <?php endfor; ?>
</select>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 14h50   #5
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 1
Points : 1
Superbe, ça marche ! Je te remercie beaucoup.
Par contre je n'arrive pas à adapter ta démarche pour une liste d'items non ordonnées, comme "Pierre", "Paul", "Jacques"... ?
wurlitzer7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2012, 14h55   #6
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Pour une liste non ordonnée, utilises foreach() à la place de for()
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 22h33   #7
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 1
Points : 1
Bon, j'ai essayé d'utiliser foreach comme tu me l'as proposé mais c'est pas fameux... Apparemment il faut l'utiliser dans un array ?
Code :
1
2
3
4
5
6
7
8
 
Mois <select name="mois">
      <?php
       foreach (array(Janvier, Février, Mars, Avril, Mai, Juin, Juillet, Septembre, Octobre, Novembre, Décembre) as $i)
	   ?>
       <option value="<?php echo $i; ?>"<?php echo $selected; ?>><?php echo $value; ?></option>
 
        </select>
wurlitzer7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2012, 22h44   #8
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
T'y étais presque :
Code :
1
2
3
4
5
6
7
Mois <select name="mois">
   <?php
   $mois = array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
   foreach($mois as $i): ?>
   <option value="<?php echo $i; ?>"<?php echo $selected; ?>><?php echo $value; ?></option>
   <?php endforeach; ?>
</select>
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 17h44   #9
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 1
Points : 1
J'y suis presque mais pourtant j'y suis pas ! ;-)
J'ai pourtant fait tout comme tu m'as dit mais les mois ne veulent pas s'afficher. Arghh !

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
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
 
 
if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
    $etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
 
    // On récupère les champs du formulaire, et on arrange leur mise en forme
    if (isset($_POST["son_nom"])) $_POST["son_nom"]=trim(stripslashes
($_POST["son_nom"])); // trim()  enlève les espaces en début et fin de chaine
 
 
    if (isset($_POST["sa_date"])) $_POST["sa_date"]=trim(stripslashes
($_POST["sa_date"]));
 
	if (isset($_POST["mois"])) $_POST["mois"]=trim(stripslashes
($_POST["mois"]));
 
    // Après la mise en forme, on vérifie la validité des champs
    if (empty($_POST["son_nom"])) { // L'utilisateur n'a pas rempli le champ nom
        $erreur="Vous n'avez pas entr&eacute; votre nom..."; // On met dans erreur le message qui sera affiché
        }
 
        elseif (empty($_POST["sa_date"])) { // L'utilisateur n'a pas rempli le champ date
            $erreur="Vous devez s&eacute;lectionner le jour de votre d&eacute;placement...";
        }
		elseif (empty($_POST["mois"])) { // L'utilisateur n'a pas rempli le champ mois
            $erreur="Vous devez s&eacute;lectionner la date compl&egrave;te de votre d&eacute;placement...";
        }
        else { // Si tous les champs sont valides, on change l'état à ok
            $etat="ok";
        }
}
else { // Sinon le formulaire n'a pas été soumis
    $etat="attente"; // On passe donc dans l'état attente
}
 
 
?>
<head>
 
</head>
 
<body>
 
      <?php
if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
    if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
        echo "<div class=\"txt-erreur\">".$erreur."</div>\n"; 
// On affiche le message correspondant à l'erreur
    }
?>
      <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"><input type="hidden" name="type_form" value="Réservation" />
 
 
 
Nom<input name="son_nom" type="text" size="22" value="<?php
        if (!empty($_POST["son_nom"])) {
        // le nom de l'expéditeur a été saisi --> le réafficher
        echo htmlspecialchars($_POST["son_nom"],ENT_QUOTES); 
// htmlspecialchars() convertit les caractères spéciaux en leurs code html, exemple : & devient &amp;
        }
        ?>" />
        <br />
 
Date <select name="sa_date">
   <?php
   for($i = 0; $i < 32; ++$i):
      $value = ($i === 0) ? 'Jour' : $i;
      $selected = ($i == $_POST['sa_date']) ? ' selected="selected"' : null;
   ?>
   <option value="<?php echo $i; ?>"<?php echo $selected; ?>><?php echo $value; ?></option>
   <?php endfor; ?>
</select>       
 
Mois <select name="mois">
   <?php
   $mois = array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
   foreach($mois as $i): ?>
   <option value="<?php echo $i; ?>"<?php echo $selected; ?>><?php echo $value; ?></option>
   <?php endforeach; ?>
</select>
 
 
 
 
    <br />
<input class="bouton-valid" name="envoyer" type="submit" value="envoyer" />
</form>
<?php
}
else { // Sinon l'état est ok donc on envoie le mail
    $type_form = $_POST["type_form"]; // On stocke les variables récupérées du formulaire
	$son_nom = $_POST["son_nom"];
    $sa_date = $_POST["sa_date"];
	$mois = $_POST["mois"];
}
?>
</body>
</html>
wurlitzer7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 19h14   #10
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Euh faut adapter son code un peu quand même avant de copier-coller :
Code :
1
2
3
4
5
6
7
8
Mois <select name="mois">
   <?php
   $mois = array('Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
   foreach($mois as $i):
   $selected = ($i === $_POST['mois']) ? ' selected="selected"' : null; ?>
   <option value="<?php echo $i; ?>"<?php echo $selected; ?>><?php echo $i; ?></option>
   <?php endforeach; ?>
</select>
Je te conseillerai de remplacer dans l'attribut value la valeur littérale du mois par son numéro. Bien plus pratique à gérer.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 10h35   #11
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 1
Points : 1
Oui, merci ça prend forme !!! Ultime souci : la vérification de ce dernier champs (mois) ne s'effectue plus comme avant (le message d'alerte ne s'affiche pas si ce champs n'est pas renseigné). J'ai essayé de réparer ce problème en m'inspirant du champs ma_date qui lui fonctionne mais visiblement la règle ne s'applique pas de la même façon... Tu aurais une idée ? Après promis je t'embête plus ! ;-)
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
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
 
 
if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
    $etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
 
    // On récupère les champs du formulaire, et on arrange leur mise en forme
    if (isset($_POST["son_nom"])) $_POST["son_nom"]=trim(stripslashes
($_POST["son_nom"])); // trim()  enlève les espaces en début et fin de chaine
 
 
    if (isset($_POST["sa_date"])) $_POST["sa_date"]=trim(stripslashes
($_POST["sa_date"]));
 
	if (isset($_POST["mois"])) $_POST["mois"]=trim(stripslashes
($_POST["mois"]));
 
    // Après la mise en forme, on vérifie la validité des champs
    if (empty($_POST["son_nom"])) { // L'utilisateur n'a pas rempli le champ nom
        $erreur="Vous n'avez pas entr&eacute; votre nom..."; // On met dans erreur le message qui sera affiché
        }
 
        elseif (empty($_POST["sa_date"])) { // L'utilisateur n'a pas rempli le champ date
            $erreur="Vous devez s&eacute;lectionner le jour de votre d&eacute;placement...";
        }
		elseif (empty($_POST["mois"])) { // L'utilisateur n'a pas rempli le champ mois
            $erreur="Vous devez s&eacute;lectionner la date compl&egrave;te de votre d&eacute;placement...";
        }
        else { // Si tous les champs sont valides, on change l'état à ok
            $etat="ok";
        }
}
else { // Sinon le formulaire n'a pas été soumis
    $etat="attente"; // On passe donc dans l'état attente
}
 
 
?>
<head>
 
</head>
 
<body>
 
      <?php
if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
    if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
        echo "<div class=\"txt-erreur\">".$erreur."</div>\n"; 
// On affiche le message correspondant à l'erreur
    }
?>
      <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"><input type="hidden" name="type_form" value="Réservation" />
 
 
 
Nom<input name="son_nom" type="text" size="22" value="<?php
        if (!empty($_POST["son_nom"])) {
        // le nom de l'expéditeur a été saisi --> le réafficher
        echo htmlspecialchars($_POST["son_nom"],ENT_QUOTES); 
// htmlspecialchars() convertit les caractères spéciaux en leurs code html, exemple : & devient &amp;
        }
        ?>" />
        <br />
 
<select name="sa_date">
   <?php
   for($i = 0; $i < 32; ++$i):
      $value = ($i === 0) ? 'Jour' : $i;
      $selected = ($i == $_POST['sa_date']) ? ' selected="selected"' : null;
   ?>
   <option value="<?php echo $i; ?>"<?php echo $selected; ?>><?php echo $value; ?></option>
   <?php endfor; ?>
</select>       
 
<select name="mois">
   <?php
   $mois = array('Mois', 'Janvier', 'F&eacute;vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Ao&ucirc;t', 'Septembre', 'Octobre', 'Novembre', 'D&eacute;cembre');
   foreach($mois as $i):
   $value = ($i === 0) ? 'Mois' : $i;
   $selected = ($i === $_POST['mois']) ? ' selected="selected"' : null; ?>
   <option value="<?php echo $i; ?>"<?php echo $selected; ?>><?php echo $i; ?></option>
   <?php endforeach; ?>
</select>
 
 
 
 
    <br />
<input class="bouton-valid" name="envoyer" type="submit" value="envoyer" />
</form>
<?php
}
else { // Sinon l'état est ok donc on envoie le mail
    $type_form = $_POST["type_form"]; // On stocke les variables récupérées du formulaire
	$son_nom = $_POST["son_nom"];
    $sa_date = $_POST["sa_date"];
	$mois = $_POST["mois"];
}
?>
</body>
</html>
wurlitzer7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 11h13   #12
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Je me suis permis de reprendre ton code afin d'améliorer un peu tout ça :
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
<?php
 
$nom  = (isset($_POST['nom'])  && strlen($_POST['nom']))  ? trim(stripcslashes($_POST['nom']))  : '';
$jour = (isset($_POST['jour']) && strlen($_POST['jour'])) ? trim(stripcslashes($_POST['jour'])) : '';
$mois = (isset($_POST['mois']) && strlen($_POST['mois'])) ? trim(stripcslashes($_POST['mois'])) : '';
 
// tableau des erreurs de saisie
$erreurs = array();
 
// on gère le numéro du mois plutôt que son appellation
$listeMois = array(1 => 'Janvier', 'F&eacute;vrier', 'Mars', 'Avril', 'Mai', 'Juin',
                  'Juillet', 'Ao&ucirc;t', 'Septembre', 'Octobre', 'Novembre', 'D&eacute;cembre');
 
 
if (isset($_POST['envoyer'])) {
   if ( ! strlen($nom)) {
      $erreurs[] = "Vous n'avez pas entr&eacute; votre nom...";
   }
 
   if ( ! strlen($jour)) {
      $erreurs[] = "Vous devez s&eacute;lectionner le jour de votre d&eacute;placement...";
   }
 
   if ( ! (ctype_digit($mois) || isset($listeMois[$mois]))) {
      $erreurs[] = "Vous devez s&eacute;lectionner la date compl&egrave;te de votre d&eacute;placement...";
   }
 
   if (empty($erreurs)) {
      // on envoie le mail ici
      // et redirection header(Location: ...)
      // après une redirection toujours mettre : (ligne suivante à décommenter)
      // exit;
   }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   ici tu devrais définir quelques paramètres d'en-tête
</head>
<body>
   <?php foreach($erreurs as $erreur): ?>
   <div class="txt-erreur"><?php echo $erreur; ?></div>
   <?php endforeach; ?>
   <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
      <input type="hidden" name="type_form" value="Réservation" />
      <label for="nom">Nom</label>
      <input id="nom" name="nom" type="text" size="22" value="<?php echo htmlspecialchars($nom, ENT_QUOTES); ?>" />
      <br />
      <label for="jour">Jour</label>
      <select id="jour" name="jour">
         <?php for($i = 1; $i < 32; ++$i):
            $selected = ($i == $jour) ? ' selected="selected"' : null;
         ?>
         <option value="<?php echo $i; ?>"<?php echo $selected; ?>><?php echo $i; ?></option>
         <?php endfor; ?>
      </select>
      <label for="mois">Mois</label>
      <select id="mois" name="mois">
         <?php foreach($listeMois as $num => $nomMois):
            $selected = ($num == $mois) ? ' selected="selected"' : null; ?>
         <option value="<?php echo $num; ?>"<?php echo $selected; ?>><?php echo $nomMois; ?></option>
         <?php endforeach; ?>
      </select>
      <br />
      <input class="bouton-valid" name="envoyer" type="submit" value="envoyer" />
   </form>
</body>
</html>
Bonne relecture
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 12h29   #13
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 1
Points : 1
Merci pour ton joli nettoyage mais dans ta proposition la vérification sur les listes déroulantse ne se fait toujours pas puisque par défaut tu proposes "1" pour le jour et "Janvier" pour le mois alors qu'il faudrait "Jour" et "Mois" par défaut dans le menu et s'il n'y a pas de jour ou de mois sélectionné alors le message d'alerte s'affiche. Dis-moi si je ne suis pas très clair ??
wurlitzer7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 13h29   #14
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
J'ai repris le code en tenant compte de tes désirs (c'est pas beau ça ? )
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
<?php
 
$nom  = (isset($_POST['nom'])  && strlen($_POST['nom']))  ? trim(stripcslashes($_POST['nom']))  : '';
$jour = (isset($_POST['jour']) && strlen($_POST['jour'])) ? trim(stripcslashes($_POST['jour'])) : '';
$mois = (isset($_POST['mois']) && strlen($_POST['mois'])) ? trim(stripcslashes($_POST['mois'])) : '';
 
// tableau des erreurs de saisie
$erreurs = array();
 
// on gère le numéro du mois plutôt que son appellation
$listeMois = array(1 => 'Janvier', 'F&eacute;vrier', 'Mars', 'Avril', 'Mai', 'Juin',
                  'Juillet', 'Ao&ucirc;t', 'Septembre', 'Octobre', 'Novembre', 'D&eacute;cembre');
 
 
if (isset($_POST['envoyer'])) {
   if ( ! strlen($nom)) {
      $erreurs[] = "Vous n'avez pas entr&eacute; votre nom...";
   }
 
   if (( ! ctype_digit($jour)) || ($jour < 1) || ($jour > 31)) {
      $erreurs[] = "Vous devez s&eacute;lectionner le jour de votre d&eacute;placement...";
   }
 
   if ( ! (ctype_digit($mois) && isset($listeMois[$mois]))) {
      $erreurs[] = "Vous devez s&eacute;lectionner la date compl&egrave;te de votre d&eacute;placement...";
   }
 
   if (empty($erreurs)) {
      // on envoie le mail ici
      // et redirection header(Location: ...)
      // après une redirection toujours mettre : (ligne suivante à décommenter)
      // exit;
   }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   ici tu devrais définir quelques paramètres d'en-tête
</head>
<body>
   <?php foreach($erreurs as $erreur): ?>
   <div class="txt-erreur"><?php echo $erreur; ?></div>
   <?php endforeach; ?>
   <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
      <input type="hidden" name="type_form" value="Réservation" />
      <label for="nom">Nom</label>
      <input id="nom" name="nom" type="text" size="22" value="<?php echo htmlspecialchars($nom, ENT_QUOTES); ?>" />
      <br />
      <select id="jour" name="jour">
         <option value="0">Jour</option>
         <?php for($i = 1; $i < 32; ++$i):
            $selected = ($i == $jour) ? ' selected="selected"' : null;
         ?>
         <option value="<?php echo $i; ?>"<?php echo $selected; ?>><?php echo $i; ?></option>
         <?php endfor; ?>
      </select>
      <select id="mois" name="mois">
         <option value="0">Mois</option>
         <?php foreach($listeMois as $num => $nomMois):
            $selected = ($num == $mois) ? ' selected="selected"' : null; ?>
         <option value="<?php echo $num; ?>"<?php echo $selected; ?>><?php echo $nomMois; ?></option>
         <?php endforeach; ?>
      </select>
      <br />
      <input class="bouton-valid" name="envoyer" type="submit" value="envoyer" />
   </form>
</body>
</html>
ça devrait rouler comme sur des roulettes
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 19h50   #15
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 1
Points : 1
C'est très sympa de ta part. C'est un code très propre. J'espère que ça servira à beaucoup d'autres également !
J'ai passé une partie du week-end à adapter tes infos sur le reste de mon formulaire mais au final j'ai une erreur que j'ai localisé dans la partie d'envoi du mail qui n'a pas l'air d'être compatible avec ton code. Voici le bout concerné :

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
 
if (isset($_POST['envoyer'])) {
   if ( ! strlen($nom)) {
      $erreurs[] = "Vous n'avez pas entr&eacute; votre nom...";
   }
 
   elseif ( ! strlen($prenom)) {
      $erreurs[] = "Vous n'avez pas entr&eacute; votre pr&eacute;nom...";
   }
 
   elseif ( ! strlen($email)) {
      $erreurs[] = "Nous avons besoin de votre e-mail pour vous r&eacute;pondre...";
   }
   elseif ( ! strlen($telephone)) {
      $erreurs[] = "Nous avons besoin de votre t&eacute;l&eacute;phone pour vous r&eacute;pondre...";
   }
 
   elseif (( ! ctype_digit($jour)) || ($jour < 1) || ($jour > 31)) {
      $erreurs[] = "Vous devez s&eacute;lectionner le jour de votre d&eacute;placement...";
   }
 
   elseif ( ! (ctype_digit($mois) && isset($listeMois[$mois]))) {
      $erreurs[] = "Vous devez s&eacute;lectionner la date compl&egrave;te de votre d&eacute;placement...";
   }
 
   elseif ( ! (ctype_digit($heure) && isset($listeHeure[$heure]))) {
      $erreurs[] = "Vous devez s&eacute;lectionner l'heure de votre d&eacute;placement...";
   }
 
   elseif ( ! (ctype_digit($minute) && isset($listeMinute[$heure]))) {
      $erreurs[] = "Vous devez s&eacute;lectionner l'heure compl&egrave;te de votre d&eacute;placement...";
   }
 
   elseif ( ! strlen($depart)) {
      $erreurs[] = "Vous devez indiquer l'adresse de d&eacute;part...";
   } 
 
   elseif ( ! strlen($arrivee)) {
      $erreurs[] = "Vous devez indiquer l'adresse de d'arriv&eacute;e...";
   }
 
   elseif (empty($erreurs)) {
      // on envoie le mail ici
      // et redirection header(Location: ...)
      // après une redirection toujours mettre : (ligne suivante à décommenter)
      // exit;
 
 
	$mon_email = "contact@moi.com"; // Mise en forme du message que vous recevrez
	$mon_pseudo = "moi";
    $mon_url = "http://www.moi.com";
    $msg_pour_moi = "$type_form \n
- Son nom : $nom \n
- Son prénom : $prenom \n
- Son e-mail : $email \n
- Son téléphone : $telephone \n
- La date d'intervention : $date $mois \n
- L'heure d'intervention : $heure $minutes \n
- L'adresse de départ : $depart \n
- L'adresse d'arrivée : $arrivee \n
- Message : \n $message \n\n";
 
    // Mise en forme de l'accusé réception qu'il recevra
    $accuse_pour_lui = "Bonjour $prenom $nom,\n
    Nous avons bien enregistré votre réservation. Nous vous répondrons dans les plus brefs délais.\n\n
- La date d'intervention : $date $mois \n
- L'heure d'intervention : $heure $minute \n
- L'adresse de départ : $depart \n
- L'adresse d'arrivée : $arrivee \n
- Message : \n $message \n\n
Merci et à bientôt !";
 
    // Envoie du mail
    $entete = "From: " . $mon_pseudo . " <" . $mon_email . ">\n"; // On prépare l'entête du message
    $entete .='Content-Type: text/plain; charset="utf-8"'."\n";
	$entete .='Content-Transfer-Encoding: 8bit';
 
    if (@mail($mon_email,$type_form,$msg_pour_moi,$entete) && 
@mail($email,$type_form,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
        echo "<div id=\"txt-form04\" style=\"text-align:center\"><br />Votre demande a &eacute;t&eacute; envoy&eacute;e,\n";
		echo "vous recevrez une confirmation par mail.</div>\n"; 
// On affiche un message de confirmation
 
   }
}
 
?>
wurlitzer7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 21h48   #16
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonsoir,

La raison pour laquelle j'ai utilisé if () { ... } if () { ... } et pas if () { ... } elseif () { ... } est très simple : cette structure permet d'empiler les erreurs de saisie de l'utilisateur.
Si par exemple, il a oublié de renseigner son Nom et son Prénom, ma version interceptera les deux erreurs alors que la tienne s'arrêtera juste au nom oublié.
Citation:
au final j'ai une erreur que j'ai localisé dans la partie d'envoi du mail qui n'a pas l'air d'être compatible avec ton code.
Il va falloir être plus explicite et donner plus d'infos parce que là j'ai pas allumé ma boule de cristal
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 14h36   #17
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 1
Points : 1
Oui, j'avais bien compris ton but en utilisant le "if" plutôt que "elseif" mais je préfère qu'il n'y ai qu'une ligne d'alerte plutôt que 10 car sinon ça pête ma mise en page (sorry). Comme je te disais, une fois tout le formulaire intégré, j'ai une erreur de syntaxe au final que je n'avais pas précédemment. Ca doit venir de la partie concernant l'envoi du formulaire peut-être pas "compatible" avec le reste. Je t'avais proposé la partie du code concernée dans mon précédent post mais voici maintenant le code de (presque) toute la page. Je te remercie une nouvelle fois pour ton aide précieuse et j'espère bientôt boucler ce formulaire !!! ;-)

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
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?php
 
$nom  = (isset($_POST['nom'])  && strlen($_POST['nom']))  ? trim(stripcslashes($_POST['nom']))  : '';
$prenom = (isset($_POST['prenom']) && strlen($_POST['prenom'])) ? trim(stripcslashes($_POST['prenom'])) : '';
$mois = (isset($_POST['email']) && strlen($_POST['email'])) ? trim(stripcslashes($_POST['email'])) : '';
$telephone = (isset($_POST['telephone']) && strlen($_POST['telephone'])) ? trim(stripcslashes($_POST['telephone'])) : '';
$jour = (isset($_POST['jour']) && strlen($_POST['jour'])) ? trim(stripcslashes($_POST['jour'])) : '';
$mois = (isset($_POST['mois']) && strlen($_POST['mois'])) ? trim(stripcslashes($_POST['mois'])) : '';
$mois = (isset($_POST['heure']) && strlen($_POST['heure'])) ? trim(stripcslashes($_POST['heure'])) : '';
$mois = (isset($_POST['minute']) && strlen($_POST['minute'])) ? trim(stripcslashes($_POST['minute'])) : '';
$mois = (isset($_POST['depart']) && strlen($_POST['depart'])) ? trim(stripcslashes($_POST['depart'])) : '';
$mois = (isset($_POST['arrivee']) && strlen($_POST['arrivee'])) ? trim(stripcslashes($_POST['arrivee'])) : '';
 
// tableau des erreurs de saisie
$erreurs = array();
 
// on gère le numéro du mois plutôt que son appellation
$listeMois = array(1 => 'Janvier', 'F&eacute;vrier', 'Mars', 'Avril', 'Mai', 'Juin',
                  'Juillet', 'Ao&ucirc;t', 'Septembre', 'Octobre', 'Novembre', 'D&eacute;cembre');
 
$listeHeure = array(1 => '1h', '2h', '3h', '4h', '5h', '6h', '7h', '8h', '9h', '10h', '11h', '12h', '13h', '14h', '15h', '16h', '17h', '18h', '19h', '20h', '21h', '22h', '23h', '00h');
 
$listeMinute = array(1 => '00min', '05min', '10min', '15min', '20min', '25min', '30min', '35min', '40min', '45min', '50min', '55min');
 
if (isset($_POST['envoyer'])) {
   if ( ! strlen($nom)) {
      $erreurs[] = "Vous n'avez pas entr&eacute; votre nom...";
   }
 
   elseif ( ! strlen($prenom)) {
      $erreurs[] = "Vous n'avez pas entr&eacute; votre pr&eacute;nom...";
   }
 
   elseif ( ! strlen($email)) {
      $erreurs[] = "Nous avons besoin de votre e-mail pour vous r&eacute;pondre...";
   }
   elseif ( ! strlen($telephone)) {
      $erreurs[] = "Nous avons besoin de votre t&eacute;l&eacute;phone pour vous r&eacute;pondre...";
   }
 
   elseif (( ! ctype_digit($jour)) || ($jour < 1) || ($jour > 31)) {
      $erreurs[] = "Vous devez s&eacute;lectionner le jour de votre d&eacute;placement...";
   }
 
   elseif ( ! (ctype_digit($mois) && isset($listeMois[$mois]))) {
      $erreurs[] = "Vous devez s&eacute;lectionner la date compl&egrave;te de votre d&eacute;placement...";
   }
 
   elseif ( ! (ctype_digit($heure) && isset($listeHeure[$heure]))) {
      $erreurs[] = "Vous devez s&eacute;lectionner l'heure de votre d&eacute;placement...";
   }
 
   elseif ( ! (ctype_digit($minute) && isset($listeMinute[$heure]))) {
      $erreurs[] = "Vous devez s&eacute;lectionner l'heure compl&egrave;te de votre d&eacute;placement...";
   }
 
   elseif ( ! strlen($depart)) {
      $erreurs[] = "Vous devez indiquer l'adresse de d&eacute;part...";
   } 
 
   elseif ( ! strlen($arrivee)) {
      $erreurs[] = "Vous devez indiquer l'adresse de d'arriv&eacute;e...";
   }
 
   elseif (empty($erreurs)) {
      // on envoie le mail ici
      // et redirection header(Location: ...)
      // après une redirection toujours mettre : (ligne suivante à décommenter)
      // exit;
 
 
	$mon_email = "contact@moi.com"; // Mise en forme du message que vous recevrez
	$mon_pseudo = "moi";
    $mon_url = "http://www.moi.com";
    $msg_pour_moi = "$type_form \n
- Son nom : $nom \n
- Son prénom : $prenom \n
- Son e-mail : $email \n
- Son téléphone : $telephone \n
- La date d'intervention : $date $mois \n
- L'heure d'intervention : $heure $minutes \n
- L'adresse de départ : $depart \n
- L'adresse d'arrivée : $arrivee \n
- Message : \n $message \n\n";
 
    // Mise en forme de l'accusé réception qu'il recevra
    $accuse_pour_lui = "Bonjour $prenom $nom,\n
    Nous avons bien enregistré votre réservation. Nous vous répondrons dans les plus brefs délais.\n\n
- La date d'intervention : $date $mois \n
- L'heure d'intervention : $heure $minute \n
- L'adresse de départ : $depart \n
- L'adresse d'arrivée : $arrivee \n
- Message : \n $message \n\n
Merci et à bientôt sur www.3T-Moto13.com !";
 
    // Envoie du mail
    $entete = "From: " . $mon_pseudo . " <" . $mon_email . ">\n"; // On prépare l'entête du message
    $entete .='Content-Type: text/plain; charset="utf-8"'."\n";
	$entete .='Content-Transfer-Encoding: 8bit';
 
    if (@mail($mon_email,$type_form,$msg_pour_moi,$entete) && 
@mail($email,$type_form,$accuse_pour_lui,$entete)){ // Si le mail a été envoyé
        echo "<div id=\"txt-form04\" style=\"text-align:center\"><br />Votre demande a &eacute;t&eacute; envoy&eacute;e,\n";
		echo "vous recevrez une confirmation par mail.</div>\n"; 
// On affiche un message de confirmation
 
   }
}
 
?>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>#</title>
 
<link href="styles.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
 
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
 
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->
</script>
</head>
 
<body onload="MM_preloadImages('images/onglet02b.gif','images/onglet03b.gif')">
<div id="conteneur">
    <div id="tetiere"><a href="index.html"><img src="images/tetiere01.gif" width="958" height="186" border="0" /></a></div>
  <div id="centre">
    <div id="bloc01"><br /><br />
    </div>
	<div id="bloc-droite01"><img src="images/onglet01c.gif" width="102" height="47" /><a href="devis01.php" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image18','','images/onglet02b.gif',1)"><img src="images/onglet02a.gif" name="Image18" width="102" height="47" border="0" id="Image18" /></a><a href="information01.php" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image19','','images/onglet03b.gif',1)"><img src="images/onglet03a.gif" name="Image19" width="100" height="47" border="0" id="Image19" /></a>
 
      <div id="bloc-form00"><div class="bloc-form01"> 
      <?php foreach($erreurs as $erreur): ?>
   <div class="txt-erreur"><?php echo $erreur; ?></div>
   <?php endforeach; ?>
 
      <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"><input type="hidden" name="type_form" value="Réservation" />
 
 
 
<table width="276" border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td width="105"><div id="txt-form04">Nom*</div></td>
    <td width="163" align="right">
    <input id="nom" name="nom" type="text" id="txt-form01" size="22" value="<?php echo htmlspecialchars($nom, ENT_QUOTES); ?>" />
   </td>
    </tr>
  <tr>
    <td width="100"><div id="txt-form04">Prénom*</div></td>
    <td width="168" align="right">
    <input id="prenom" name="prenom" type="text" id="txt-form01" size="22" value="<?php echo htmlspecialchars($nom, ENT_QUOTES); ?>" />
   </td>
    </tr>
  <tr>
    <td width="100"><div id="txt-form04">Email*</div></td>
    <td width="168" align="right">
    <input id="email" name="email" type="text" id="txt-form01" size="22" value="<?php echo htmlspecialchars($nom, ENT_QUOTES); ?>" />
   </td>
    </tr>
  <tr>
    <td width="100"><div id="txt-form04">Téléphone*</div></td>
    <td width="168" align="right">
    <input id="telephone" name="telephone" type="text" id="txt-form01" size="22" value="<?php echo htmlspecialchars($nom, ENT_QUOTES); ?>" />
    </td>
    </tr>
  <tr>
    <td width="100"><div id="txt-form04">Date*</div></td>
    <td width="168" align="right">
    <select id="jour" name="jour" id="txt-form01">
         <option value="0">Jour</option>
         <?php for($i = 1; $i < 32; ++$i):
            $selected = ($i == $jour) ? ' selected="selected"' : null;
         ?>
         <option value="<?php echo $i; ?>"<?php echo $selected; ?>><?php echo $i; ?></option>
         <?php endfor; ?>
     </select>
 
      <img src="images/pixtrans.gif" width="5" height="5" align="left">
 
      <select id="mois" name="mois" id="txt-form01">
         <option value="0">Mois</option>
         <?php foreach($listeMois as $num => $nomMois):
            $selected = ($num == $mois) ? ' selected="selected"' : null; ?>
         <option value="<?php echo $num; ?>"<?php echo $selected; ?>><?php echo $nomMois; ?></option>
         <?php endforeach; ?>
      </select>
 
     </td>
    </tr>
  <tr>
    <td><div id="txt-form04">Heure*</div></td>
    <td align="right">
 
    <select id="heure" name="heure" id="txt-form01">
         <option value="0">Heures</option>
         <?php foreach($listeHeure as $num => $nomHeure):
            $selected = ($num == $heure) ? ' selected="selected"' : null; ?>
         <option value="<?php echo $num; ?>"<?php echo $selected; ?>><?php echo $nomHeure; ?></option>
         <?php endforeach; ?>
      </select>
    <img src="images/pixtrans.gif" width="5" height="5" align="left">
 
     <select id="minute" name="minute" id="txt-form01">
         <option value="0">Minutes</option>
         <?php foreach($listeMinute as $num => $nomMinute):
            $selected = ($num == $minute) ? ' selected="selected"' : null; ?>
         <option value="<?php echo $num; ?>"<?php echo $selected; ?>><?php echo $nomMinute; ?></option>
         <?php endforeach; ?>
      </select>
 
     </td>
    </tr>
</table>
  <table width="276" border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td><img src="images/pixtrans.gif" width="5" height="1" /></td>
  </tr>
  <tr>
    <td><div id="txt-form04">Adresse de départ*</div></td>
  </tr>
  <tr>
    <td>
    <input id="depart" name="depart" type="text" id="txt-form01" size="34" value="<?php echo htmlspecialchars($nom, ENT_QUOTES); ?>" />
 
 
        </td>
  </tr>
  <tr>
    <td><img src="images/pixtrans.gif" width="5" height="1" /></td>
  </tr>
  <tr>
    <td><div id="txt-form04">Adresse d'arrivée*</div></td>
  </tr>
  <tr>
    <td>
    <input id="arrivee" name="arrivee" type="text" id="txt-form01" size="34" value="<?php echo htmlspecialchars($nom, ENT_QUOTES); ?>" />
 
</td>
  </tr>
  <tr>
    <td><img src="images/pixtrans.gif" width="5" height="1" /></td>
  </tr>
  <tr>
    <td><div id="txt-form04">Message</div></td>
  </tr>
  <tr>
    <td>
    <input id="message" name="message" class="txt-form05" cols="34" rows="4" value="<?php echo htmlspecialchars($nom, ENT_QUOTES); ?>" />
 
   </td>
  </tr>
  <tr>
    <td align="center"><img src="images/pixtrans.gif" width="5" height="3" /></td>
  </tr>
  <tr>
    <td align="center"><input class="bouton-valid" name="envoyer" type="submit" value="" /></td>
  </tr>
</table>
</form>
 
</div>
</div>
</div>
</div>
</div>
</body>
</html>
wurlitzer7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 21h09   #18
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Après avoir parcouru ton code, j'ai remarqué que tu avais un certain nombre de tags avec deux attributs id :
Code :
1
2
3
<input id="nom" name="nom" type="text" id="txt-form01" size="22" value="<?php echo htmlspecialchars($nom, ENT_QUOTES); ?>" />
<input id="prenom" name="prenom" type="text" id="txt-form01" size="22" value="<?php echo htmlspecialchars($nom, ENT_QUOTES); ?>" />
...
Ensuite, ne trouves-tu pas que le mois est sacrément bien défini ?
Code :
1
2
3
4
5
6
7
8
9
10
$nom  = (isset($_POST['nom'])  && strlen($_POST['nom']))  ? trim(stripcslashes($_POST['nom']))  : '';
$prenom = (isset($_POST['prenom']) && strlen($_POST['prenom'])) ? trim(stripcslashes($_POST['prenom'])) : '';
$mois = (isset($_POST['email']) && strlen($_POST['email'])) ? trim(stripcslashes($_POST['email'])) : '';
$telephone = (isset($_POST['telephone']) && strlen($_POST['telephone'])) ? trim(stripcslashes($_POST['telephone'])) : '';
$jour = (isset($_POST['jour']) && strlen($_POST['jour'])) ? trim(stripcslashes($_POST['jour'])) : '';
$mois = (isset($_POST['mois']) && strlen($_POST['mois'])) ? trim(stripcslashes($_POST['mois'])) : '';
$mois = (isset($_POST['heure']) && strlen($_POST['heure'])) ? trim(stripcslashes($_POST['heure'])) : '';
$mois = (isset($_POST['minute']) && strlen($_POST['minute'])) ? trim(stripcslashes($_POST['minute'])) : '';
$mois = (isset($_POST['depart']) && strlen($_POST['depart'])) ? trim(stripcslashes($_POST['depart'])) : '';
$mois = (isset($_POST['arrivee']) && strlen($_POST['arrivee'])) ? trim(stripcslashes($_POST['arrivee'])) : '';
Un tag img s'écrit :
Et enfin pour l'erreur dans la partie mail, je veux bien l'admettre mais ne sachant pas quelle erreur tu obtiens exactement, je ne pourrais t'être d'un grand secours.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2012, 19h23   #19
Invité de passage
 
Homme
Inscription : janvier 2012
Messages : 10
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : janvier 2012
Messages : 10
Points : 1
Points : 1
Après avoir tranquillement relu et corrigé mon code ce week-end + quelques recherches sur le net, j'ai pu enfin faire fonctionner convenablement mon formulaire. Donc un grand merci à toi pour ton aide et ta patience !
wurlitzer7 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 08h50.


 
 
 
 
Partenaires

Hébergement Web