选择框:如何填充多年的php

时间:2012-02-21 00:42:55

标签: php mysql drop-down-menu

我正在尝试在生日字段中填充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>

2 个答案:

答案 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

之前关闭PHP标记

答案 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>