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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    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 éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    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 émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    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 confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    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
    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 éclairé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 80
    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 confirmé
    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
    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 émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

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

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

  8. #8
    Expert confirmé

    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
    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/

+ 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