Amlioration du code : Choix d'une année à aujourd'hui

Mammouth du PHP | 545 Messages

26 janv. 2006, 13:31

Salut,

Je cherche à améliorer mon scrip d'un choix pour un formulaire. Cela ne servira vraiment qu'à moi mais comme je suis en phase d'apprentissage ... cela pourra servir plus tard!

Donc voici mon code
<td height="35">&nbsp;</td>
    <td valign="top"><form id="form1" name="form1" method="POST" action="<?php echo $editFormAction; ?>">
      <table width="100%" border="1">
        <tr>
          <td>Ann&eacute;e</td>
		  <td><label>
            <select name="annee" id="annee">
            <option value="1983">1983</option>
            <option value="1984">1984</option>
            <option value="1985">1985</option>
            <option value="1986">1986</option>
            <option value="1987">1987</option>
            <option value="1988">1988</option>
            <option value="1989">1989</option>
            <option value="1990">1990</option>
            <option value="1991">1991</option>
            <option value="1992">1992</option>
            <option value="1993">1993</option>
            <option value="1994">1994</option>
            <option value="1995">1995</option>
            <option value="1996">1996</option>
            <option value="1997">1997</option>
            <option value="1998">1998</option>
            <option value="1999">1999</option>
            <option value="2000">2000</option>
            <option value="2001">2001</option>
            <option value="2002">2002</option>
            <option value="2003">2003</option>
            <option value="2004">2004</option>
            <option value="2005">2005</option>
            <option value="2006">2006</option>
            <option value="2007">2007</option>
            <option value="2008">2008</option>
            <option value="2009">2009</option>
            <option value="2010">2010</option>
            </select>
            <input name="participant" type="hidden" id="participant" value="<?php echo $row_participant['ID_coureur']; ?>" />
Comme vous l'imaginez, ce sont bien des années ... je me demande si dans mon choix il n'y a pas moyen de mettre de 1983 à aujourd'hui!

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Eléphanteau du PHP | 30 Messages

26 janv. 2006, 14:03

Salut :)

je debute egalement, mais moi j'aurais fais comme ca:

tu recuperes l'année en cours.
avec
$annee_en_cours = date("Y");
$annee_depart = "1983";

$difference = $annee_en_cours - $annee_depart;
et ensuite tu generes tes lignes, avec un compteur pour qu'il sarrete lorsque
la difference d'année est atteinte...
Il y a peut-etre plus simple... mais j'aurais fais comme ca ^^
si ca peut t'aider ;)

Mammouth du PHP | 545 Messages

26 janv. 2006, 14:12

Salut,

Y'a déjà une idée maintenant, je vais essayé de l'inclure dans mon script!

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Eléphant du PHP | 180 Messages

26 janv. 2006, 19:59

Salut !

Tu peux faire comme ça :
<select name="annee" id="annee">
<?php

$annee_en_cours = date("Y");
$min_year = $annee_en_cours - 23; // ou 23 définit la borne inferieure

for($a=$min_year;$a<=$annee_en_cours;$a++)
{
	echo "<option value=\"$a\">$a</option>\r";
}
?>
</select>
Ce code est valable tout le temps car il est réajusté automatiquement à chaque nouvelle année -> dans dix ans en 2016, ton script affichera de 1993 à 2016.

A+

Didier
Giant steps are what you take ... walking on the moon ;-)

Mammouth du PHP | 545 Messages

26 janv. 2006, 23:47

Salut didgar,

J'ai une question à te poser par rapport à la 'borne inférieure'. Tu lui as donné comme valeur 23 mais l'an prochain? Elle devra être égale à 24, non? Si ce n'est pas le cas, je ne vois pas comment ton scrip fonctionne ... j'ai commencé le PHP début novembre!

Merci
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Eléphant du PHP | 180 Messages

27 janv. 2006, 00:07

Salut didgar,

J'ai une question à te poser par rapport à la 'borne inférieure'. Tu lui as donné comme valeur 23 mais l'an prochain? Elle devra être égale à 24, non? Si ce n'est pas le cas, je ne vois pas comment ton scrip fonctionne ... j'ai commencé le PHP début novembre!

Merci
Salut !

Ta question n'as de sens que si tu souhaites que ta borne inférieure soit définitivement 1983 !

Auquel cas le script deviens :
<select name="annee" id="annee">
<?php

$annee_en_cours = date("Y");
$min_year = 1983; //  définit la borne inferieure

for($a=$min_year;$a<=$annee_en_cours;$a++)
{
    echo "<option value="$a">$a</option>\r";
}
?>
</select>
Dans ce cas, on peut faire plus simple avec une boucle while mais la n'est pas la question. Donc avec le code ci-dessus tu fixes la borne inférieure à 1983 et tous les ans $annee_en_cours va s'incrémenter de 1 donc en ce moment tu as dans ton select de 1983 à 2006 inclus. Avec ce script dans 10 ans tu auras de 1983 à 2016.

Dans le script que je t'ai envoyé dans mon précédent post la borne inférieure n'est pas figée. Ce qui est figé c'est l'écart [ 23 ans ] entre la borne inf et l'année en cours. Dans 10 ans tu auras automatiquement de 1993 à 2016 ce qui fait toujours 23 ans d'écart.
Pourquoi ? Parce que $min_year = $annee_en_cours - 23;

Est-ce que ça répond à ta question ? N'hésites pas si tu as besoin ;-)

A+

Didier
Giant steps are what you take ... walking on the moon ;-)

Mammouth du PHP | 545 Messages

27 janv. 2006, 00:21

Ta question n'as de sens que si tu souhaites que ta borne inférieure soit définitivement 1983 !
C'est bien cela! La 1er année est 1983 et jusqu'à aujourd'hui. 1983 est définitif!
Dans ce cas, on peut faire plus simple avec une boucle while mais la n'est pas la question. Donc avec le code ci-dessus tu fixes la borne inférieure à 1983 et tous les ans $annee_en_cours va s'incrémenter de 1 donc en ce moment tu as dans ton select de 1983 à 2006 inclus. Avec ce script dans 10 ans tu auras de 1983 à 2016.
Un bon code c'est ce que je désire. Comme je le disais, je cherche une amélioration et surtout la comprendre pour que je puisse le faire par moi-même ensuite ... c'est pourquoi, je me demandais comment ta précédente proposition fonctionnait.
Est-ce que ça répond à ta question ? N'hésites pas si tu as besoin ;-)
Vais pouvoir faire quelque chose de propre ... merci!
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!

Eléphant du PHP | 180 Messages

27 janv. 2006, 00:28

Vais pouvoir faire quelque chose de propre ... merci!
Y'a pas d'koi ;-)

A+

Didier
Giant steps are what you take ... walking on the moon ;-)

Mammouth du PHP | 545 Messages

27 janv. 2006, 23:25

Salut,

C'est avec un peu de retard que j'annonce que ce code fonctionne à merveille!

Merci pour cette amélioration de mon code
Sebe

Pour moi, le PHP est une nouvelle aventure qui a commencée fin octobre 2005 ... c'est plus exitant que le HTML!