Vienne
Vienne

Reputation: 99

PHP - Setting default year in selection box

I am new to PHP. I have a selection box with a range of years starting at current year - 5 (2014) through the year 2050. My selection box contains the correct years but I need it to default to the current year. Right now, it defaults to 2014. I've been working on this for hours. I thought the $current_year variable was needed in the loop in some way - in order to set the default - but that doesn't work. After researching and seeing various examples, I'm now thinking I need to build an if statement within the loop but I really don't know.

<form id="calendarForm" name="calendarForm" method="post" action="">
    <label for="select_year">Select the year: </label>
    <select id="select_year" name="select_year">
        <?php
        $date = new DateTime();
        // Sets the current year
        $current_year = $date->format('Y');
        // Year to start available options.
        $earliest_year = ($current_year - 5);
        $year = $earliest_year;

        for ($year = $earliest_year; $year <= LATEST_YEAR; $year++) {
            echo "<option value='$year'>$year</option>";
        }
        ?>

    </select>

Upvotes: 1

Views: 69

Answers (2)

Russ J
Russ J

Reputation: 838

Modify your for loop as follows:

for ($year = $earliest_year; $year <= LATEST_YEAR; $year++) {
  if($year==$current_year)
        {
                echo "<option value='$year' selected>$year</option>";
        }
     else{
         echo "<option value='$year'>$year</option>";
        }
        }

Upvotes: 2

RGriffiths
RGriffiths

Reputation: 5970

Try the following. You need to adjust your php tags but neat.

<option value='$year' <?php if($year == date("Y")) {echo "selected";}?> >$year</option>";

It will check against the current year and will be the selected option if matched.

Upvotes: 1

Related Questions