Page 1 sur 1

liste deroulante avec mois par défaut en français

Posté : 15 juin 2007, 11:08
par Punisher
Bonjour a tous

je suis toujour sur le codage de mon planning, il me reste quelque réglages a réaliser:
j'ai une liste déroulante, qui permet de choisir les mois (voir code php ci dessous).

<style type="text/css">
a
{
	display: block;
	text-align: center;
}
</style>


<?php

	$mois = array( $moisActuel = date('F'), 'Janvier', 'F&eacute;vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Ao&ucirc;t', 'Septembre', 'Octobre', 'Novembre', 'D&eacute;cembre');

?>

<table width="100%" height="812" border="2" cellpadding="2" cellspacing="2">
  <tr>
	<th height="100" colspan="2" align="right" scope="col">
		
		<p align="center"><strong>
		
		<select name="mois">
		
		<?php
		
			

			for ($i = 0 ; $i <13 ; $i++)
			{
				if ($i == $moisActuel)
				{
					echo '<option selected="selected" value="'.$i.'">'.$moisActuel.'</option>';
				}
				else
				{
					echo '<option value="'.$i.'">'.$mois[$i].'</option>';
				}
			}
		  
		   
		?>

		
		</select>
		
		</strong></p>
dans cette liste, se trouve le mois par defaut qui est celui actuel, le problème est qu'il s'affiche en anglais et j'aimerais qu'il s'affiche en français, et d'une autre part trouver un moyen de na pas afficher le mois dnas la liste qui est identique a celui que la fonction qui affiche le mois par defaut.
j'ai donc un beau problème a resoudre... :?

Posté : 15 juin 2007, 11:26
par Ryle
Il te suffit de ne pas utiliser la fonction date('F') pour récupérer le libellé du mois en cours, celle-ci t'indiquant :
Mois, textuel, version longue; en anglais, comme January ou December
En revanche tu peux utiliser le paramètre "n" pour connaitre le numéro du mois en cours, et l'utiliser pour trouver son libellé dans ton tableau.

Enfin pour éviter le doublon, je n'ajouterais pas le mois en cours au début de la liste (ce qui doit par ailleurs avoir un effet assez perturbant, en général on apprécie qu'ils soient dans l'ordre), mais je me contenterais de selectionné l'option qui va bien (suffit d'ajouter "selected" dans la balise qui correspond :))

Posté : 15 juin 2007, 14:25
par Invité
ce pour bon pour la mise en français du mois par défaut :langue:
me reste a faire en sorte de trouver un moyen de na pas afficher le mois du tableau dans la liste qui est identique a celui que la fonction qui affiche le mois par defaut...
parce que tu me dit
Enfin pour éviter le doublon, je n'ajouterais pas le mois en cours au début de la liste
j'ai bien penser a une methode
ce a dire qu'on affiche pas le mois donné par la variable mais on sen sert pour selectionner le nom du mois identique dans le tableau et on le met en selection par defaut. mais je sais pas comment changer la selection par defaut sur une autre donnée du tableau :-k

Posté : 15 juin 2007, 16:47
par ouckileou

Re: liste deroulante avec mois par défaut en français

Posté : 20 juin 2007, 07:04
par aandre2937
...dans cette liste, se trouve le mois par defaut qui est celui actuel, le problème est qu'il s'affiche en anglais et j'aimerais qu'il s'affiche en français, ...
J'ai trouvé dans "Je me lance en PHP et MySQL (MicroApplication)" la réponse à ta première préoccupation. Il s'agit de créer un tableau à inclure définissant un tableau des mois:
<?php
$mois[0] = janvier;
$mois[1} = février;
.
.
.
$mois[11] = décembre;
?>
Ensuite, dans le code appelant, affecter l'indice du mois à une variable :
$mois_chiffre = date("n"); et ensuite
echo '$mois[$mois_chiffre]'; 
ou peut-être, plus simplement, mais je ne l'ai pas teste:
echo '$mois[date("n")]';

Posté : 20 juin 2007, 12:18
par Aureusms

j'ai bien penser a une methode
ce a dire qu'on affiche pas le mois donné par la variable mais on sen sert pour selectionner le nom du mois identique dans le tableau et on le met en selection par defaut. mais je sais pas comment changer la selection par defaut sur une autre donnée du tableau :-k
Une méthode que j'utilise, je mets en gras grâce aux CSS. Cela donne :
a chaque balise <option> :
foreach ($tableau_mois as $numero_du_mois => $nom_mois) {
          if ($mois_en_cours == $numero_du_mois) echo '<option style="font-weight:bold;">'.$nom_mois.'</option>';
                                            else echo '<option>'.$nom_mois.'</option>';
}
Comme ca dans ta liste tu as le mois en gras....
J'espère que cela va te donner une piste ....