IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Réafficher la sélection d'une liste déroulante


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 2
    Points
    2
    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 : 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
     
    <!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>

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="11" selected="selected">11</option>
    Regardes ici

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse mais comment faire pour recréer la liste ?

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    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"... ?

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Pour une liste non ordonnée, utilises foreach() à la place de for()

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  8. #8
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    T'y étais presque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  9. #9
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    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 : 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
     
    <!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>

  10. #10
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Euh faut adapter son code un peu quand même avant de copier-coller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  11. #11
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    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 : 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
     
    <!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>

  12. #12
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Je me suis permis de reprendre ton code afin d'améliorer un peu tout ça :
    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
    <?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

  13. #13
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    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 ??

  14. #14
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    J'ai repris le code en tenant compte de tes désirs (c'est pas beau ça ? )
    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
    <?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

  15. #15
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    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 : 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
     
    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
     
       }
    }
     
    ?>

  16. #16
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    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é.
    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

  17. #17
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    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 : 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
    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>

  18. #18
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Après avoir parcouru ton code, j'ai remarqué que tu avais un certain nombre de tags avec deux attributs id :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  19. #19
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    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 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Réafficher sélection dans une liste déroulante
    Par GYK dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 29/10/2009, 17h03
  2. Réponses: 2
    Dernier message: 02/03/2007, 22h20
  3. Réponses: 1
    Dernier message: 10/07/2006, 13h40
  4. obliger sélection dans une liste déroulante
    Par doyle01 dans le forum Access
    Réponses: 4
    Dernier message: 15/05/2006, 15h31
  5. Garder fixe la sélection d'une liste déroulante
    Par hysteresis dans le forum ASP
    Réponses: 11
    Dernier message: 20/10/2005, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo