Probleme avec les listes deroulantes en PHP

Eléphant du PHP | 63 Messages

09 avr. 2006, 09:09

bonjour

j'ai un petit soucis dans une routine
Je veux afficher dans une liste déroulante un certain nombre d'année
et mettre par défaut l'année en cours.
J'ai un probleme dans la selection, et j'ai beau chercher, je ne trouve pas

$aaaa="2006";

echo "<select name=aaaa>";
echo "<option selected> </option>";
for ($i=DATE("Y");$i<=DATE("Y")+2;$i++)  
{
echo "<option value=$i";
if ($aaaa==$i) echo " selected ";
echo ">$i</option>";
}
echo "</select>";
Merci par avance
hello

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

09 avr. 2006, 09:40

Essaye en virant le selected de ta premiere option (qui est vide) :
"<option selected> </option>";

:)

Mammouth du PHP | 19672 Messages

09 avr. 2006, 09:51

Ça + une simplification :
<?php
$aaaa = "2006";

echo "<select name=\"aaaa\">\n";
echo "<option value=\"-1\">&nbsp;</option>\n";
for ($i = date("Y"); $i <= (date("Y")+2); $i++)
{
    $selected = ($i == $aaaa) ? " selected" : null;
    echo "<option value=\"$i\"". $selected .">$i</option>\n";
}
echo "</select>\n";
?>
Mais tu pourrais faire aussi :
<?php
$aaaa = "2006";
?>
<select name="aaaa">
  <option value="-1">&nbsp;</option>
<?php
for ($i = date("Y"); $i <= (date("Y")+2); $i++)
{
    $selected = ($i == $aaaa) ? " selected" : null;
?>
  <option value="$i"<?php echo($selected); ?>><?php echo($i); ?></option>
<?php
}
?>
</select>
C'est plus propre.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 63 Messages

09 avr. 2006, 11:02

MErci pour l'aide