Page 1 sur 1
menu déroulants "automatiques"
Posté : 08 juil. 2005, 16:12
par Justone
Bonjour
J'ai crée deux menus déroulants, un pour les mois un pour les années
Code : Tout sélectionner
<select name="mois">
<option value="1">Janvier</option>
<option value="2">Février</option>
<option value="3">Mars</option>
<option value="4">Avril</option>
<option value="5">Mai</option>
<option value="6">Juin</option>
<option value="7" selected>Juillet</option>
<option value="8">Août</option>
<option value="9">Septembre</option>
<option value="10">Octobre</option>
<option value="11">Novembre</option>
<option value="12">Décembre</option>
</select>
<select name="annee">
<option value="2005" selected>2005</option>
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
</select>
J'ai mis selected en juillet et en 2005
je voudrais savoir comment faire pour que ca se fasse automatiquement au mois et a l'année en cours?
par ex j'aimerais qu'au premier aout ce soit le mois aout et l'année 2005 qui oit selectionné, et cela sans avoir a modifié le code.
Merci
Posté : 08 juil. 2005, 16:33
par guilt92
<?php $current_month=date("n");
$current_year=date("Y");
$NomDuMois=array("Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre"); ?>
<select name="mois">
<?php for($i=1;$i<13;$i++)
if($i==$current_month) echo "<option value=\"$i\" selected>$NomduMois[$i-1]</option>";
else echo "<option value=\"$i\">$NomduMois[$i-1]</option>"; ?>
</select>
Je verrais bien quelque chose comme ca pour le mois, tu peux faire pareil apres pour l'année...
Re: menu déroulants "automatiques"
Posté : 08 juil. 2005, 16:34
par ouckileou
et cela sans avoir a modifié le code.
ça ça va être difficile, généralement rien ne se fait tout seul
en Javascript :
tu récupères l'année courante
et tu fais un truc du genre
document.getElementById(annee).item.selected = true
dans l'idée bien sûr
regarde comme accéder au option d'une liste déroulante en javascript
Posté : 08 juil. 2005, 16:36
par guilt92
j'avais pas vu cette derniere phrase...
Euh si quelque chose ne marche pas et que tu veux le changer comment est ce possible sans changer ton code???

Posté : 08 juil. 2005, 16:38
par Justone
Quand je dis sans modifier le code, ca veut dire sans aller changer le selected tous les mois par ex
Posté : 08 juil. 2005, 16:39
par guilt92
donc ma solution pourrait convenir, non ?
Posté : 08 juil. 2005, 16:39
par ouckileou
et bien voilà tu a deux pistes, une en PHP et l'autre en javascript

Posté : 08 juil. 2005, 16:51
par Justone
merci bcp pour la rapidité de vos réponses. j'ai choisi le php.
lorsque je met
echo "<option value='$i' selected>$NomDuMois[$i]</option>";
tout se compile bien mais les mois sont décalé alors je veux mettre $i-1
mais lorsque je met
echo "<option value='$i' selected>$NomDuMois[$i-1]</option>";
j'obtiens cette erreur Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting ']'
qqn sait pkoi?
merci
EDIT : pkoi mon topic a bougé dans le forum javascript???
il concerne le php!!!
Posté : 08 juil. 2005, 16:57
par ouckileou
si entre ça
echo "<option value='$i' selected>$NomDuMois[$i]</option>";
et ça
echo "<option value='$i' selected>$NomDuMois[$i-1]</option>";
y'a une erreur qui survient, a priori ça vient du -1
normal, là tu insères un calcul au milieu d'une chaine alors il ne comprend plus
donc coupe ta chaine :
echo "<option value='$i' selected>$NomDuMois[".($i-1)."]</option>";
Posté : 08 juil. 2005, 16:57
par guilt92
essaye comme ca :
echo "<option value='$i' selected>$NomDuMois[($i-1)]</option>";
sinon au pire tu peux toujours faire ca :
$j=$i-1;
echo "<option value='$i' selected>$NomDuMois[$j]</option>";
Posté : 08 juil. 2005, 16:58
par guilt92
lol bien joué ouckileou meme heure de post tu as du etre plus rapide de quelques secondes !!!!!

Posté : 08 juil. 2005, 17:01
par ouckileou
mais pourquoi sont-ils décalés au fait ???
for ($i=1;$i<=12;$i++) {
echo "<option value='$i' selected>$NomDuMois[$i]</option>";
}
bon il manque le test pour le mois courant mais là plus besoin de -1
Posté : 08 juil. 2005, 17:04
par guilt92
si parce que la le premier élement du tableau, janvier, est $NomDuMois[0]
Sinon tu rajoutes
$NomDuMois=array("erreur","Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre");
et comme ca plus besoin de décalage
Posté : 08 juil. 2005, 17:05
par ouckileou
ah oui j'avais pas vu le tableau désolé
ou alors plus simplement
$NomDuMois=array(1=>"Janvier","Fevrier","Mars","Avril","Mai","Juin","Juillet","Aout","Septembre","Octobre","Novembre","Decembre");