我正在尝试在生日字段中填充php中的选择框多年。从查询中设置变量$ year,并且必须在我的选择框中选择特定年份。到目前为止的代码就是这个,它只填充了几年,但它没有选择存储在mysql db中的年份,有谁知道为什么?感谢
$year = $row['year']; // this comes from a query that is stored in the db
<select name="year"><?
for ($x = 1920; $x < date('Y'); $x++) {
?><option value=<? echo $x; if ($x == $year) {echo 'selected="selected"';}?>><? echo $x;?></option><?
}?>
</select>
答案 0 :(得分:7)
试试这个:
$year = (int)$row['year']; // this comes from a query that is stored in the db
?>
<select name="year"><?php
for ($x = 1920; $x < date('Y'); $x++) {
?><option value="<?php echo $x . '"'; if ($x == $year) { echo ' selected="selected"';}?>><?php echo $x; ?></option><?
}?>
</select>
主要问题是您没有使用双引号关闭value
,因此包含了'selected="selected"
。所以你得到了这个:
<option value=1990selected="selected">1990</option>
此外,您没有在<select
答案 1 :(得分:0)
看起来你没有在标签值和所选标签之间留下空隙。尝试更改此内容:
<option value=<? echo $x; if ($x == $year) {echo 'selected="selected"';}?>><? echo $x;?></option>
为:
<option value="<? echo $x; ?>" <? if ($x == $year) {echo 'selected="selected"';}?>><? echo $x;?></option>