0

我有这个功能用于打印当前年份select boxoption value不等于option text. 即:选定的当前年份value是 2013 年,但是html text output2012 年。如何解决这个问题?

PHP:

<select name="year">
    <?php
    for($i=date("Y")-5;$i<=date("Y");$i++) {
        $sel = ($i == date('Y')) ? 'selected' : '';
        echo "<option value=".$i." ".$sel.">".date("Y", mktime(0,0,0,0,1,$i))."</option>";
    }
    ?>
</select>

输出:

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

3 回答 3

3

也许不是一个好方法و但只是添加+1$i

<select name="year">
    <?php
    for($i=date("Y")-5;$i<=date("Y");$i++) {
        $sel = ($i == date('Y')) ? 'selected' : '';
        echo "<option value=".$i." ".$sel.">".date("Y", mktime(0,0,0,0,1,$i+1))."</option>"; // change This Line
    }
    ?>
</select>

在线演示在这里

于 2013-09-28T17:56:58.460 回答
0

您的价值印刷有问题

<select name="year">
    <?php
    for($i=date("Y")-5;$i<=date("Y");$i++) {
        $sel = ($i == date('Y')) ? 'selected' : '';
        echo "<option value=".$i." ".$sel.">".$i."</option>";  // here I have changed      
    }
    ?>
</select>
于 2013-09-28T17:15:49.070 回答
0
<?php
                $yearArray = range(2015, 2050);
                    ?>
                    Year
                    <select name="year" id="year">
                    <option value="">Select Year</option>
                    <?php
                    foreach ($yearArray as $year) {

                    $selected = ($year == 2017) ? 'selected' : '';
                    echo '<option '.$selected.' value="'.$year.'">'.$year.'</option>';
                    }
                    ?>
                    </select>
于 2017-12-15T12:48:12.033 回答