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

Eléphanteau du PHP | 13 Messages

15 juin 2007, 11:08

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... :?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 juin 2007, 11:26

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 :))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

15 juin 2007, 14:25

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

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 juin 2007, 16:47


Eléphanteau du PHP | 12 Messages

20 juin 2007, 07:04

...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")]';
A. ANDRE
------------------------------------------------------------------------
Long et caillouteux, est le chemin qui mène à la connaissance!

ViPHP
ViPHP | 1996 Messages

20 juin 2007, 12:18


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 ....
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr