2011-10-26 34 views
0

我有這個查詢下面是一年的下拉(從1900年電流)。我正在使用$變量在編輯表單的下拉列表中顯示先前選擇的年份。它的工作原理除了2011年所有其他年份也重複。我如何調整它,使$ y先顯示,然後顯示下面的所有年份?如何僅使當前年份出現一次?

代碼:

<select name="year"> 
<?PHP for($i=date("1900"); $i<=date("2011"); $i++) 
     if($year == $i) 
      echo "<option value='$y' selected>$y</option> 
    <option value='$i' selected>$i</option>"; 
     else 
      echo "<option value='$y' selected>$y</option> 
    <option value='$i'>$i</option>"; 
?> 
    </select></td> 
    </tr> 
+0

是'$ y'應該是'$ year'? –

+1

另外,你爲什麼要做日期(「1900」)而不是'1900'? –

+1

+1 @Michael,我沒有得到這個for-loop。對我來說似乎是循環了很多日期。 – OptimusCrime

回答

1

保持簡單:

<select name="year"> 
     <?php for($i=1900; $i<=date('Y'); $i++) { 
     if($i == date('Y')) 
      echo "<option value='$i' selected='selected'>$i</option>"; 
     else 
      echo "<option value='$i'>$i</option>"; 
     } 
?> 
    </select></td> 
    </tr> 

或者甚至更好:

<select name="year"> 
    <?php for($i=1900; $i<=date('Y'); $i++) 
     echo "<option value='$i' ".(($i == date('Y')?'selected="selected"':'')).">$i</option>"; 
    ?> 
</select></td> 
</tr> 

和向後

<select name="year"> 
    <?php for($i=date('Y'); $i>=1900; $i--) 
     echo "<option value='$i' ".(($i == date('Y')?'selected="selected"':'')).">$i</option>"; 
    ?> 
</select></td> 
</tr> 
1
<select name="year"> 
<?PHP 
     echo "<option value='$year' selected>$year</option> 
     for($i=1900; $i<=2011; $i++) 
     if($year != $i) 
      echo "<option value='$i'>$i</option>"; 
    <option value='$i'>$i</option>"; 
?> 
    </select></td> 
    </tr> 
+0

謝謝!以及如何扭轉它?而不是1900 - 2011年我怎麼做2011-1900?我試過swtiching,但它不起作用。 – AAA

+0

您必須通過'for for($ i = 2011; $ i <= 1900; $ i - )'來更改'for'行'這將反向計數。 – Ivan

+0

它不起作用。它只是顯示我2011年... – AAA

1

不知道什麼$y是,但我想$year是本年度:

<select name="year"> 
    <?php 
    for($i=date("1900"); $i<=date("2011"); $i++) 
    { 
      if($year == $i) 
       echo '<option value="'.$i.'" selected="selected">'.$i.'</option>'; 
      else 
       echo '<option value="'.$i.'">'.$i.'</option>'; 
    } 
    ?> 
    </select> 
相關問題