Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 09/02/2011, 12h08   #1
Futur Membre du Club
 
Homme
Développeur Web
Inscription : novembre 2007
Messages : 185
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2007
Messages : 185
Points : 15
Points : 15
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 :
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 :
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 ?
kamnouz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 12h25   #2
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Bonjour,

déjà, tu peux raccourcir ta section

Code :
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 :
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 :
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
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 13h19   #3
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

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

Informations forums :
Inscription : mai 2009
Messages : 456
Points : 639
Points : 639
Créer un array de mois.
Code :
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 :
1
2
3
4
5
 
foreach ($ar_mois as $key =>$value)
{
      echo '<option value="' . $value . '" ' . (($key == date("m"))?'selected' : '') . '>' . $value . '</option>'
}
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 13h31   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 015
Points : 5 015
Ou encore:
Code :
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
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 13h42   #5
Membre régulier
 
Inscription : juin 2004
Messages : 66
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 66
Points : 86
Points : 86
En même temps, il existe plein de possibilité.

Moi je propose :
Code :
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".
Blount est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 13h51   #6
Futur Membre du Club
 
Homme
Développeur Web
Inscription : novembre 2007
Messages : 185
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2007
Messages : 185
Points : 15
Points : 15
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 ??
kamnouz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 15h19   #7
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

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

Informations forums :
Inscription : mai 2009
Messages : 456
Points : 639
Points : 639
Dans le premier affichage récupere les information que tu veux afficher selon date("m");
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 15h22   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
faut pas s'embêter a recréer les mois en français, strftime ou Intl sont la pour ca
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 11h39   #9
Futur Membre du Club
 
Homme
Développeur Web
Inscription : novembre 2007
Messages : 185
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2007
Messages : 185
Points : 15
Points : 15
Lorsque je créer un tableau de mois

Code :
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 :
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 :
1
2
3
 
 
echo $mois_en_cours=$mois_fr[date("w",$today)];
Quelqu'un aurait-il une petite idée ?
kamnouz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 11h53   #10
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
"w" c'est le jour de la semaine et on est jeudi (4).
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 12h06   #11
Futur Membre du Club
 
Homme
Développeur Web
Inscription : novembre 2007
Messages : 185
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2007
Messages : 185
Points : 15
Points : 15
AHHHH merci effectivement je n'ai pas fait attention !!!

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

Merci à tous
kamnouz 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 06h19.


 
 
 
 
Partenaires

Hébergement Web