2016-08-13 86 views
-1

如何填充上一年值(2016)選擇的DropDown作爲選定的默認值?使用PHP從下拉菜單中選擇動態值

<?php 
 
\t $last_year = date ("Y"); 
 
\t print "<select>"; 
 
\t for($i = 2004; $i <= $last_year; $i++) { 
 
\t \t echo "<option selected=\"$last_year\" value=\"$i\">$i</option>\n"; 
 
\t }; 
 
\t print "</select>"; 
 
?>

謝謝!

+0

我發現下面的鏈接類似的要求和解決方案。 http://stackoverflow.com/questions/34206981/php-loop-for-year-dropdown –

+0

旁註:'echo'使用一個較少的字符,然後'打印'(更多的手指應變)。您可以在此問答中看到差異http://stackoverflow.com/questions/1647322/whats-the-difference-between-echo-print-and-print-r-in-php和http://stackoverflow.com/問題/ 7094118/reference-comparison-phps-print-and-echo - 如果'打印'你真正想使用的東西,那麼你的權力就越大。 –

回答

2
<?php 
    $last_year = date ("Y"); 
    print "<select>"; 
    for($i = 2004; $i <= $last_year; $i++) { 
     $selected = ($last_year == $i) ? 'selected="selected"' : ''; 
     echo "<option $selected value=\"$i\">$i</option>\n"; 
    } 
    print "</select>"; 
    ?> 

如果我找到了你,那麼這應該適合你。你所做的是每年選擇而不是最後一個。

+0

僅供參考,您可以編輯刪除的答案,然後取消刪除它們,而不是回答兩次 – RiggsFolly

+0

謝謝,但ikr意外地點擊了錯誤的按鈕。我brainfart ^。^ –

+1

大聲笑,好吧沒問題 – RiggsFolly

1

在做這樣的循環比較:

for($i = 2004; $i <= $last_year; $i++) { 
    if($i == $last_year){ 
     $sel = 'selected=selected'; 
    } else { 
     $sel = ''; 
    } 
    echo "<option value='$i' $sel>$i</option>\n"; 
}; 
+0

如果不是正確的年份,您不應該指定null,只是做一個空字符串來防止錯誤 –

+0

我'這種方式多年來沒有發生任何問題。 – Dave

+1

@Dave在其他部分將「null」值編輯爲某個其他值,爲了安全處理代碼,我接受其他條件不會被分配,但代碼質量和避免無條件情況下,分配空值。謝謝 –