<select name="year"><?=ddY()?></select>
function ddY(){
for($i=1900;$i<=date('Y');$i++)
$arr[] = $i;
$arr = array_reverse($arr);
foreach($arr as $year){
if($year == date('Y')) {
echo '<option value="'.$year.'" selected="selected">'.$year.'</option>';
} else {
echo '<option value="'.$year.'">'.$year.'</option>';
}
//echo'<option value="'.$year.'">'.$year.'</option>';
}
}
下拉列表已正确填充,但未选择当前年份。
答案 0 :(得分:1)
获得所选值的最佳方法是: 我使用的是非连接方法:
<option value="<?php echo $year; ?>" <?php if($year == date('Y')) { echo "selected"; } ?> ><?php echo $year; ?></option>
同时检查您的变量是否为您提供了适当的值。
答案 1 :(得分:1)
我怀疑您是按照发布的问题在屏幕上“按照屏幕显示”运行代码,并且会在Call to undefined function ddY()
中生成“未定义函数”错误。
将您的功能包裹在<?php // function etc. ?>
内,它会起作用。这就是我怀疑正在发生的事情。
<select name="year"><?=ddY()?></select>
<?php
function ddY(){
for($i=1900;$i<=date('Y');$i++)
$arr[] = $i;
$arr = array_reverse($arr);
foreach($arr as $year){
if($year == date('Y')) {
echo '<option value="'.$year.'" selected="selected">'.$year.'</option>';
} else {
echo '<option value="'.$year.'">'.$year.'</option>';
}
//echo'<option value="'.$year.'">'.$year.'</option>';
}
}
?>
<select name="year">
<option value="2013" selected="selected">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
<option value="2008">2008</option>
<option value="2007">2007</option>
答案 2 :(得分:1)
应该完全正常。 这不是答案 - 只是重写两个循环的建议:
<select name="year">
<?php
$currentYear = (int)date('Y');
for ($i = $currentYear; $i >= 1900; $i--) {
echo '<option value="' . $i . '"' . ($i == $currentYear ? ' selected="selected"' : '') . '>' . $i . '</option>';
}
?>
</select>
输出:
<select name="year">
<option value="2013" selected="selected">2013</option>
<option value="2012">2012</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
...
<option value="1903">1903</option>
<option value="1902">1902</option>
<option value="1901">1901</option>
<option value="1900">1900</option>
</select>
答案 3 :(得分:1)
这是代码:
<option value="<?php echo $year; ?>" <?php echo ($year == date('Y')) ? "selected":""; } ?> ><?php echo $year; ?></option>