2016-08-13 144 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”值编辑为某个其他值,为了安全处理代码,我接受其他条件不会被分配,但代码质量和避免无条件情况下,分配空值。谢谢 –