如何在PHP中进行表单验证后从下拉列表中保留选定的年份选项

时间:2014-03-17 14:42:43

标签: php forms

我有一个表单,用户在表单中插入并选择一些数据,其中一个选择字段是他/她的出生年份。

下拉列表填写正确,但在提交表单进行验证后,我无法保留所选年份,用户必须重新选择它!

这就是我所做的:

<select size="1" name="birthYear" tabindex="7">
    // Please Select Option
    <option selected value="-1" <?php if(isset($_POST['birthYear']) && $_POST['birthYear'] == '-1') { echo 'selected="selected"'; } ?> >Please Select</option>
    // populate birth years range
    <?php
        $currentYear = date('Y');
        $minimumBirthYear = $currentYear - 10;
        $MaximumBirthYear = $currentYear - 100;
        for($i = $minimumBirthYear; $i >= $MaximumBirthYear; $i--){
            echo '<option value="'.$i.'">'.$i.'</option><br />';
        }
    ?>
</select>

请帮助我申请

<?php if(isset($_POST['birthYear']) && $_POST['birthYear'] == '-1') { echo 'selected="selected"'; } ?> >
在for循环中

?我尝试过不同的方式,但没有运气!

提前致谢...

2 个答案:

答案 0 :(得分:1)

试试这个:

for($i = $minimumBirthYear; $i >= $MaximumBirthYear; $i--){
      echo '<option '.(isset($_POST['birthYear']) && $_POST['birthYear'] == $i ? 'selected' : '').' value="'.$i.'">'.$i.'</option><br />';
}

答案 1 :(得分:0)

<select size="1" name="birthYear" tabindex="7">
// Please Select Option
<option selected value="-1">Please Select</option>
// populate birth years range
<?php
    $currentYear = date('Y');
    $minimumBirthYear = $currentYear - 10;
    $MaximumBirthYear = $currentYear - 100;
    for($i = $minimumBirthYear; $i >= $MaximumBirthYear; $i--)
    {
        echo sprintf("<option value='%s' %s >%s</option><br/>", $i, isset($_POST['birthYear']) && $_POST['birthYear']? "selected='selected'": "", $i);
    }
?>