ugrás a tartalomhoz

select option for ciklusban

phpista · 2006. Ápr. 2. (V), 11.55
Hogyan lehet azt megoldani, hogy van egy select és az option-t for ciklusban íratom ki (adott esetben az évet) úgy, hogy az aktuális év legyen mindig az első helyen.

echo "<select name=\"ev\">";
$currentEv = date("Y");
  for ($i=2003;$i<2011;$i++) {
   if ($currentEv == $i) {
    echo "<option value=" . $currentEv . ">" . $currentEv;
   }
   else {
    echo "<option value=" . $i . ">" . $i;
   }
  }
echo "</select>";
Válaszokat előre is köszönöm!
 
1

Pl.

Anonymous · 2006. Ápr. 2. (V), 12.10
  for ($i = 2003; $i <= 2011; $i++) {
    $curr = (($i == date("Y")) ? 'selected="selected"' : '');       
    echo '<option value="'.$i.'"'.$curr.'>'.$i.'</option>'."\n";
  }
3

Tényleg

phpista · 2006. Ápr. 2. (V), 12.17
Hát köszönöm. Agyaltam már egy ideje, pedig tök egyszerű! Lehet, hogy már fáradt vagyok így vasárnap :))
2

Pontosabban...

-zsolti- · 2006. Ápr. 2. (V), 12.16
...így (az előző törölhető, én voltam):
for ($i = 2003; $i < 2011; $i++) {
  $curr = ($i == date("Y") ? ' selected="selected"' : '');       
  echo '<option value="'.$i.'"'.$curr.'>'.$i.'</option>'."\n";
}
Tehát elfelejtetted lezárni az option tag-et, egy bizonyos elem pedig akkor lesz selected, ha beleírod még a selected="selected" részt.
4

Ide írom már..

phpista · 2006. Ápr. 2. (V), 12.22
a teljes jó kódot mások számára is:

<?php
echo "<select name=\"ev\">";
    $currentEv = date("Y");
      for ($i=2003;$i<2011;$i++) {
        if ($currentEv == $i) {
          echo "<option value=" . $currentEv . " selected>" . $currentEv;
        }
        else {
           echo "<option value=" . $i . ">" . $i;
        }
      }
echo "</select>";
              ?>
És köszönöm mindenkinek!