Tha_Zaynt Skrevet 18. april 2009 Del Skrevet 18. april 2009 Jeg har laget en for-loop som genererer en selectboks med årstall i. Selve for-loopen fungerer, men jeg vil også at året vi er i atomatisk skal være forhåndsvalgt. Det fungerer helt frem til 2009, men når den kommer dit setter den alle de neste årstallene til selected også. code <select name="aar"> <?php $currentyear = date("Y",time()); for ($i = 2007; $i < 2012; $i++){ if($currentyear == $i){ $selected = "selected";} echo"<option $selected value=\"$i\">$i</option>\n"; } ?> </select> output <select name="aar"> <option value="2007">2007</option> <option value="2008">2008</option> <option selected value="2009">2009</option> <option selected value="2010">2010</option> <option selected value="2011">2011</option> </select> noen som ser hvor feilen ligger? Lenke til kommentar
Ernie Skrevet 18. april 2009 Del Skrevet 18. april 2009 Feilen ligger i at du ikke nullstiller $selected. Den beholder dermed verdien fra en tidligere runde i loopen. Personlig ville jeg droppen variablen helt og gått for noe slikt: <select name="aar"> <?php $currentyear = date("Y",time()); for ($i = 2007; $i < 2012; $i++) echo"<option",(($currentyear == $i) ? ' selected': '')," value=\"$i\">$i</option>\n"; ?> </select> Lenke til kommentar
Tha_Zaynt Skrevet 18. april 2009 Forfatter Del Skrevet 18. april 2009 (endret) ok, det tenkte jeg ikke på...løste det forøvring selv på denne måten: <?php $currentyear = date("Y",time()); for ($i = 2007; $i < 2012; $i++){ if($currentyear == $i){ echo"<option selected value=\"$i\">$i</option>\n"; }else { echo"<option value=\"$i\">$i</option>\n"; } } ?> men din er muligens hakket raskere, bare en annen måte å skrive if-test på. Endret 19. april 2009 av Tha_Zaynt Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå