如何只让当前一年出现一次?

时间:2011-10-26 13:55:52

标签: php date drop-down-menu

我在下面有这个查询,这是一年的下拉(从1900年至今)。我正在使用$变量在编辑表单的下拉列表中首先显示先前选择的年份。它的工作原理除外,2011年的所有其他年份也会重复。我如何调整它以便$ y首先显示,然后是所有年份?

代码:

    <select name="year">
<?PHP for($i=date("1900"); $i<=date("2011"); $i++)
        if($year == $i)
            echo "<option value='$y' selected>$y</option>
     <option value='$i' selected>$i</option>";
        else
            echo "<option value='$y' selected>$y</option>
     <option value='$i'>$i</option>";
?>
    </select></td>
    </tr> 

3 个答案:

答案 0 :(得分:1)

    <select name="year">
<?PHP 
      echo "<option value='$year' selected>$year</option>
      for($i=1900; $i<=2011; $i++)
        if($year != $i)
            echo "<option value='$i'>$i</option>";
     <option value='$i'>$i</option>";
?>
    </select></td>
    </tr> 

答案 1 :(得分:1)

不确定$y是什么,但我猜$year是当年:

   <select name="year">
    <?php 
    for($i=date("1900"); $i<=date("2011"); $i++)
    {
            if($year == $i)
                echo '<option value="'.$i.'" selected="selected">'.$i.'</option>';
            else
                echo '<option value="'.$i.'">'.$i.'</option>';
    }
    ?>
    </select>

答案 2 :(得分:1)

保持简单:

    <select name="year">
        <?php for($i=1900; $i<=date('Y'); $i++) {
        if($i == date('Y'))
            echo "<option value='$i' selected='selected'>$i</option>";
        else
            echo "<option value='$i'>$i</option>";
        }
?>
    </select></td>
    </tr> 

甚至更好:

<select name="year">
    <?php for($i=1900; $i<=date('Y'); $i++)
        echo "<option value='$i' ".(($i == date('Y')?'selected="selected"':'')).">$i</option>";
    ?>
</select></td>
</tr> 

倒退

<select name="year">
    <?php for($i=date('Y'); $i>=1900; $i--)
        echo "<option value='$i' ".(($i == date('Y')?'selected="selected"':'')).">$i</option>";
    ?>
</select></td>
</tr>