2013-09-28 79 views
0

我在打印当前年份select box中有此功能,但option value不等于option text。即:当前选定的value年为2013年,但html text output为2012年。如何解决此问题?当前年份下拉选择框

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> 

回答

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> 

在线演示Here

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> 
+0

我知道了!但我需要'日期'功能,因为我用''日期'函数更改了日期函数。即:'arabicdate(“Y”,mktime(0,0,0,0,1,$ i));' – user2715503

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> 
+0

它是一种选择年份的静态方式 –

+0

我认为提问者希望在下拉菜单中选择当年不是年份的静态选择。 – Loren