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 :

Liste deroulante/ selectionner par default le mois en cours


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Points : 47
    Points
    47
    Par défaut Liste deroulante/ selectionner par default le mois en cours
    Bonjour à tous,

    Je voudrais séléctionner par default dans ma liste deroulante le mois en cours

    Voici comment je recupére le libellé du mois en cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $date_jour=date('d/m/Y');
    $mois_fr = Array("","janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août","septembre", "octobre", "novembre", "décembre");
    $date_explode = explode("/",$date_jour );
    if(is_array($date_explode) && isset($date_explode[0]) && isset($date_explode[1]) && isset($date_explode[2]) )
    {
    $jour=$date_explode[0];
    $mois=$date_explode[1];
    $annee=$date_explode[2];// ici on affichera cette année
    $today = mktime(12,0,0, intval($mois),intval($jour),intval($annee));
    }
    $mois_encours=$mois_fr[date("w",$today)]
    Et voila ma liste deroulante :
    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
     
    echo"<td><select name=\"mois\">
    <option> </option>
    <option value=\"janvier\">janvier</option>
    <option value=\"février\">février</option>
    <option value=\"mars\">mars</option>
    <option value=\"avril\">avril</option>
    <option value=\"mai\">mai</option>
    <option value=\"juin\">juin</option >
    <option value=\"juillet\">juillet</option>
    <option value=\"août\">août</option>
    <option value=\"février\">septembre</option>
    <option value=\"octobre\">octobre</option>
    <option value=\"novembre\">novembre</option>
    <option value=\"décembre\">décembre</option>
    </select>";
    Quelqu'un pourrait-il m'aider ?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 127
    Points
    127
    Par défaut
    Bonjour,

    déjà, tu peux raccourcir ta section

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $date_explode = explode("/",$date_jour );
    if(is_array($date_explode) && isset($date_explode[0]) && isset($date_explode[1]) && isset($date_explode[2]) )
    {
    $jour=$date_explode[0];
    $mois=$date_explode[1];
    $annee=$date_explode[2];// ici on affichera cette année
    $today = mktime(12,0,0, intval($mois),intval($jour),intval($annee));
    }
    $mois_encours=$mois_fr[date("w",$today)]
    par ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    list($jour, $mois, $annee) = explode("/",$date_jour );
    $mois_encours=$mois_fr[intval($mois)];
    plus c'est simple, moins il y a d'erreur

    ensuite pour générer ta liste déroulante, tu peux le faire en utilisant ton tableau de mois (là aussi c'est plus simple) :

    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
     
    echo"<td><select name=\"mois\">";
    echo "<option> </option>";
    foreach($mois_fr AS $mois)
    {
        //par défaut, selected est à vide
        $selected = "";
        //comme ton tableau de mois commence par un vide, il faut l'éviter
        if($mois != "")
        {
            //si ton mois en cours est celui du mois du tableau
            if($mois == $mois_en_cours)
                //ton selected devient "SELECTED"
                $selected = " SELECTED ";
            //et tu affiche ton option avec tout ce qui va bien
            echo "<option value=\"".$mois."\" ".$selected.">".$mois."</option>";
        }
    }
    echo "</select>";
    J'espère que ca pourra t'aider

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Créer un array de mois.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $ar_mois[1] = "janvier";
    $ar_mois[2] = "février";
    $ar_mois[3] = "mars";
    $ar_mois[4] = "avril";
    $ar_mois[5] = "mai";
    $ar_mois[6] = "juin";
    $ar_mois[7] = "juillet";
    $ar_mois[8] = "août";
    $ar_mois[9] = "février";
    $ar_mois[10] = "octobre";
    $ar_mois[11] = "novembre";
    $ar_mois[12] = "décembre";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach ($ar_mois as $key =>$value)
    {
          echo '<option value="' . $value . '" ' . (($key == date("m"))?'selected' : '') . '>' . $value . '</option>'
    }

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Ou encore:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    $months = array('Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','Decembre');
    echo '<select name="mois">';
    foreach ($months as $index => $name)
    {
    echo '<option value="' . ($index +1) . '"'; 
    if ($index +1 == date('m')) echo ' selected="selected"';
    echo ">$name</option>";
    }
    echo "</select>";
    Keep it simple

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 76
    Points : 207
    Points
    207
    Par défaut
    En même temps, il existe plein de possibilité.

    Moi je propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $months = array(1 => 'Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','Decembre');
    $str = '';
    foreach ($months as $value) {
          $str .= '<option value="' . $value . '">' . $value . '</option>';
    }
    echo str_replace('value="'.$months[date("m")].'"', 'value="'.$months[date("m")].'" selected="selected"', $str);
    On évite ainsi les 12 conditions et l'appel répétitif de "date".

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Points : 47
    Points
    47
    Par défaut
    Merci beaucoup pour votre aide !!! sa marche nikel !!!

    Mais je suis face à un nouveau problème !!
    Au depart je voulais que des valeurs s'affichent lorsque je selectionne un élément dans ma liste, et que je clic sur un bouton de type submit.

    Mais puisque un mois par default est deja selectionné, comment exécuter l'action sans cliquer sur mon bouton submit ??

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Dans le premier affichage récupere les information que tu veux afficher selon date("m");

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    faut pas s'embêter a recréer les mois en français, strftime ou Intl sont la pour ca.

    Pour les détails voir dans les cours et tutoriels pour apprendre la programmation PHP, par exemple ici : http://php.developpez.com/cours/

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Points : 47
    Points
    47
    Par défaut
    Lorsque je créer un tableau de mois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $mois_fr = Array("","janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août","septembre", "octobre", "novembre", "décembre");
    que j'explode la date du jour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $date_explode = explode("/",$date_jour );
    if(is_array($date_explode) && isset($date_explode[0]) && 
    isset($date_explode[1]) &&
    isset($date_explode[2]) )
    {
    $jour=$date_explode[0];
    $mois=$date_explode[1];
    $annee=$date_explode[2];// ici on affichera cette année
    $today = mktime(0,0,0, intval($mois),intval($jour),intval($annee));
    }
    et que je l'affiche au lieu de m'afficher fevrier , elle m'affiche avril pourquoi??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    echo $mois_en_cours=$mois_fr[date("w",$today)];
    Quelqu'un aurait-il une petite idée ?

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    "w" c'est le jour de la semaine et on est jeudi (4).

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Points : 47
    Points
    47
    Par défaut
    AHHHH merci effectivement je n'ai pas fait attention !!!

    Pour ce que sa interesse à la place de "w" il faut mettre "n"

    Merci à tous

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/11/2007, 18h04
  2. Réponses: 9
    Dernier message: 07/08/2007, 15h36
  3. Réponses: 3
    Dernier message: 06/04/2007, 10h13
  4. [liste deroulante] valeur par defaut
    Par Kelly182 dans le forum Access
    Réponses: 5
    Dernier message: 08/08/2006, 15h05
  5. Réponses: 14
    Dernier message: 29/04/2005, 12h59

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