Des variables dans des listes dréoulantes

Résolu
Germano23 Messages postés 9 Date d'inscription samedi 28 mai 2005 Statut Membre Dernière intervention 6 février 2007 - 15 nov. 2006 à 10:24
Germano23 Messages postés 9 Date d'inscription samedi 28 mai 2005 Statut Membre Dernière intervention 6 février 2007 - 15 nov. 2006 à 11:41
Bonjour à tous, j'ai une petite question sur une liste déroulante qui me pose problème.

Dans un formulaire de saisie de news, je propose au visiteur de choisir une date en affichant 3 listes déroulantes (jour, mois et année).  J'ai trouvé une source qui fonctionne très bien pour faire ça, la date est alors correctement stockée dans la base Mysql.

Par contre, je propose également au visiteur de modifier sa news si il le souhaite. J'ai donc refait un formulaire qui récupère correctement les données de la base, sauf pour cette fameuse date. Je voudrais que dans les 3 listes déroulantes soit affiché les données enregistrées dans la base. Voici mon code :





<?php
list($yr, $mo, $dy) = explode("-", $dateactu); echo $yr, $mo, $dy;
echo "<select name='datej'>";
for($i=1; $i <= 31; $i++) echo "   <option>".(($i < 10)?"0":"").$i."</option>";
echo "</select> / <select name='datem'>";
for ($d=1; $d <= 12; $d++) echo "   <option>".(($d < 10)?"0":"").$d."</option>";
echo "</select> / <select name='datey'>";
for ($y=2006; $y <= 2012; $y++) echo "   <option>".$y."</option>";
echo "</select>";
?>





La date étant au format mysql (YYYY/MM/DD), j'utilise la fonction explode pour récupérer mes 3 variables séparemment. Si je fais des echo de $yr, $mo et $dy, ça marche. Le truc con c'est que n'arrive pas à les mettre en "selected" dans mes listes...

Pouvez-vous m'aider ?

4 réponses

Linkman Messages postés 113 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 24 juin 2009
15 nov. 2006 à 11:12
Ou mieux :

for($i=1; $i <= 31; $i++) {
$sel = ""; if($i $dy)$sel "selected"; 
echo "<option $sel>".(($i < 10)?"0":"").$i."</option>";
}

Have fun.
3
Linkman Messages postés 113 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 24 juin 2009
15 nov. 2006 à 11:09
Il faut que tu fasses une vérification dans tes for du style :

for($i=1; $i <= 31; $i++) {
 if($i == $dy) echo "   <option selected>".(($i < 10)?"0":"").$i."</option>";
 else echo "   <option>".(($i < 10)?"0":"").$i."</option>";
}
0
Germano23 Messages postés 9 Date d'inscription samedi 28 mai 2005 Statut Membre Dernière intervention 6 février 2007
15 nov. 2006 à 11:36
Salut Linkman, merci beaucoup pour ton aide. Visiblement ça fonctionne nikel.
Le code donne ça maintenant :

<?php
$dateactu = $enr->date_event;
list($yr, $mo, $dy) = explode("-", $dateactu);
echo "<select name='datej'>";
for($i=1; $i <= 31; $i++) {
$sel = ""; if($i $dy)$sel "selected";
echo "<option $sel>".(($i < 10)?"0":"").$i."</option>";
}
echo "</select> / <select name='datem'>";
for($d=1; $d <= 12; $d++) {
$sel = ""; if($d $mo)$sel "selected";
echo "<option $sel>".(($d < 10)?"0":"").$d."</option>";
}
echo "</select> / <select name='datey'>";
for($y=2006; $y <= 2012; $y++) {
$sel = ""; if($y $yr)$sel "selected";
echo "<option $sel>".(($y < 10)?"0":"").$y."</option>";
}
echo "</select>";
?>

J'éspère l'avoir bine écrit. En tout cas merci et bravo !!
0
Germano23 Messages postés 9 Date d'inscription samedi 28 mai 2005 Statut Membre Dernière intervention 6 février 2007
15 nov. 2006 à 11:41
Post corrigé par moi-même



<?php
<strike>$dateactu = $enr->date_event;</strike>  (ça c'est inutile, je faisais des petits tests à part)
list($yr, $mo, $dy) = explode("-", $dateactu);
echo "<select name='datej'>";
for($i=1; $i <= 31; $i++) {
$sel = ""; if($i $dy)$sel "selected";
echo "<option $sel>".(($i < 10)?"0":"").$i."</option>";
}
echo "</select> / <select name='datem'>";
for($d=1; $d <= 12; $d++) {
$sel = ""; if($d $mo)$sel "selected";
echo "<option $sel>".(($d < 10)?"0":"").$d."</option>";
}
echo "</select> / <select name='datey'>";
for($y=2006; $y <= 2012; $y++) {
$sel = ""; if($y $yr)$sel "selected";
echo "<option $sel>".(($y < 10)?"0":"").$y."</option>";
}
echo "</select>";
?>

J'éspère l'avoir <strike>bine</strike>bien écrit. En tout cas merci et bravo !!
0
Rejoignez-nous