How To Create A Loop For This Dropdown Menu? October 09, 2022 Post a Comment And, would a loop be more efficient then listing them out one by one? Solution 1: If it's not more efficient, it's certainly more readable and reusable, which is far more important. <select name="birthdayYear" > <option value="0000">Year:</option> <?php for(var $x = year(); $x >= 1900; $x--) { var $selected = ""; if($x == $birthdayYear) { $selected = " selected = 'selected'"; } echo("<option value="$x"$selected>$x</option>"); } ?> </select> Copy In short, my hair is a bird. Solution 2: Basically, you will : Deal with the 0000 specific line yourself, and then, have a for() loop from 2011 to 1900 The loop could look a bit like this : for ($year=2011 ; $year>=1900 ; $year--) { echo '<option value="' . $year . '"'; if ($year == $birthdayYear) { echo 'selected="selected"'; } echo '>' . $year . '</option>' . PHP_EOL; } Copy Of course, the 2011 year should probably not be hard-coded -- take a look at date() for a possible way of getting the current year. Solution 3: <select name="birthdayYear" > <option value="0000"<?php echo $birthdayYear == '0000' ? 'selected="selected"' : ''; ?>>Year:</option> <?php for($i=date('Y'); $i>1899; $i--) { $selected = ''; if ($birthdayYear == $i) $selected = ' selected="selected"'; print('<option value="'.$i.'"'.$selected.'>'.$i.'</option>'."\n"); } ?> </select> Copy And, would a loop be more efficient then listing them out one by one? I don't think you have to worry about efficiency. Using a loop just looks cleaner it will be easier to maintain I think. Solution 4: for ($x=(int)date("Y"); $x>=1900; $x=$x--) { echo "<option value=\"", $x, "\"", ($birthdayYear==$x) ? " selected=\"selected\"" : "", ">", $x, "</option>" } Copy This has the added bonus that you don't have to update it every year. Solution 5: Try this: <select name="birthdayYear" > <?php if($year == '0000') { echo '<option value="0000" selected="selected">0000</option>'; } else { echo '<option value="0000">0000</option>'; } for($year = intval(date('Y')); $year > 1900; $year --) { if($year == $birthdayYear) { echo '<option value="'.$year.'" selected="selected">'.$year.'</option>'; } else { echo '<option value="'.$year.'">'.$year.'</option>'; } } ?> </select> Copy Share Post a Comment for "How To Create A Loop For This Dropdown Menu?"
Post a Comment for "How To Create A Loop For This Dropdown Menu?"