2013-09-28 77 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