为什么没有选择当年?

时间:2013-08-31 15:39:56

标签: php html select option

<select name="year"><?=ddY()?></select>  


function ddY(){
        for($i=1900;$i<=date('Y');$i++)
        $arr[] = $i;
        $arr = array_reverse($arr);
        foreach($arr as $year){ 
         if($year == date('Y')) {
         echo '<option value="'.$year.'" selected="selected">'.$year.'</option>';

         } else {
            echo '<option value="'.$year.'">'.$year.'</option>';
        }



        //echo'<option value="'.$year.'">'.$year.'</option>'; 
    } 
    }

下拉列表已正确填充,但未选择当前年份。

4 个答案:

答案 0 :(得分:1)

获得所选值的最佳方法是: 我使用的是非连接方法:

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

同时检查您的变量是否为您提供了适当的值。

答案 1 :(得分:1)

我怀疑您是按照发布的问题在屏幕上“按照屏幕显示”运行代码,并且会在Call to undefined function ddY()中生成“未定义函数”错误。

将您的功能包裹在<?php // function etc. ?>内,它会起作用。这就是我怀疑正在发生的事情。

重新格式化代码:(已测试)

<select name="year"><?=ddY()?></select>  

<?php

function ddY(){
        for($i=1900;$i<=date('Y');$i++)
        $arr[] = $i;
        $arr = array_reverse($arr);
        foreach($arr as $year){ 
         if($year == date('Y')) {
         echo '<option value="'.$year.'" selected="selected">'.$year.'</option>';

         } else {
            echo '<option value="'.$year.'">'.$year.'</option>';
        }



        //echo'<option value="'.$year.'">'.$year.'</option>'; 
    } 
    }

?>

输出:

<select name="year">
<option value="2013" selected="selected">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>

等等。

答案 2 :(得分:1)

应该完全正常。 这不是答案 - 只是重写两个循环的建议

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

Demo

输出:

<select name="year">
    <option value="2013" selected="selected">2013</option>
    <option value="2012">2012</option>
    <option value="2011">2011</option>
    <option value="2010">2010</option>
    ...
    <option value="1903">1903</option>
    <option value="1902">1902</option>
    <option value="1901">1901</option>
    <option value="1900">1900</option>
</select>

答案 3 :(得分:1)

这是代码:

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