laeckler Posted September 10, 2013 Share Posted September 10, 2013 Hi All! I'm working on a PHP contact form with a drop down for the year. Right now the drop down is in HTML, but I'd like to change it to be automatically generated starting with the current year and go for the next, say, 4 years. This is what I have at the moment: <select name="year" id="contact-year" tabindex="7"> <option value="{$this->year}">{$this->year}</option> <option value="2010">2010</option> <option value="2011">2011</option> <option value="2012">2012</option> <option value="2013">2013</option> <option value="2014">2014</option> <option value="2015">2015</option> <option value="2016">2016</option> </select> If I can make it so that we (my company) don't have to go in every few years to add more, that'd be ideal. I'm not a developer by any means, nor do I know anything about PHP, so I'm just editing something that I inherited. Thanks for your help in advance! Quote Link to comment Share on other sites More sharing options...
Solution fastsol Posted September 10, 2013 Solution Share Posted September 10, 2013 Something like this <?php $current_year = date("Y"); $range = range($current_year, ($current_year + 4)); echo '<select name="year" id="contact-year" tabindex="7">'; //Now we use a foreach loop and build the option tags foreach($range as $r) { echo '<option value="'.$r.'">'.$r.'</option>'; } //Echo the closing select tag echo '</select>'; ?> This will start the list with the current year and add 4 year to it. Quote Link to comment Share on other sites More sharing options...
Love2c0de Posted September 10, 2013 Share Posted September 10, 2013 Good evening, $options = ""; for($x = 0; x <= 5; x++) { $options .= "<optiion value='201{$x}'>201{$x}"; } Then in your HTML form put: <form> <select> <?php print($options); ?> </select> </form> Kind regards, L2c. Quote Link to comment Share on other sites More sharing options...
Love2c0de Posted September 10, 2013 Share Posted September 10, 2013 Fastsol wins, don't do my option, it was rushed as well - bacon! Kind regards, L2c. Quote Link to comment Share on other sites More sharing options...
fastsol Posted September 10, 2013 Share Posted September 10, 2013 Good evening, $options = ""; for($x = 0; x <= 5; x++) { $options .= "<optiion value='201{$x}'>201{$x}"; } Then in your HTML form put: <form> <select> <?php print($options); ?> </select> </form> Kind regards, L2c. Your example would make them need to update it in the next 3 years cause it would need to change to 202 in your code. Granted it's not unlikely that it won't need to be updated in some way before then anyway but it's always best to code it in a way that you don't need to update it for something so trivial. Quote Link to comment Share on other sites More sharing options...
laeckler Posted September 10, 2013 Author Share Posted September 10, 2013 Thanks fastol & love2code! With a little help from you guys and a glossary of terms I was able to make it work! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.