【发布时间】:2009-07-30 14:00:02
【问题描述】:
我编写了一些 PHP 代码,可以让我创建一个 html 下拉框,然后选择应该选择的值。代码是:
$role_drop = "<select name='role'>";
$role_drop .= "\r\n<option value='Resident Assistant'>Resident Assistant</option>";
$role_drop .= "\r\n<option value='Community Assistant'>Community Assistant</option>";
$role_drop .= "\r\n<option value='Head RA'>Head RA</option>";
$role_drop .= "\r\n</select>";
$result = mysql_query("SELECT role FROM users");
if (@mysql_num_rows($result)) {
while ($r=@mysql_fetch_assoc($result)) {
$role = $r["role"];
$role_drop = str_replace(">$role</option>", "selected=\"\" >$role</option>",$role_drop);
echo $role_drop;
}
}
实际上,这段代码混合了一堆 HTML,但这里是所有的 PHP。当我运行它时,它似乎工作。但是,假设查询返回了 4 个带有角色的下拉框(来自 4 个用户),我要编辑或选择返回的第二个下拉框的新角色(带有 UPDATE 查询),然后当页面刷新时,所有包括和之后我更新的下拉框的角色将显示他们选择的值作为我在第二个下拉框中选择的新值。
这并不是实际数据库中的值是错误的,它们只是显示了错误的选择值。这是我为第二个下拉框选择新值后的第三个下拉框的源代码:
<select name="role">
<option selected="" value="Resident Assistant">Resident Assistant</option>
<option value="Community Assistant">Community Assistant</option>
<option selected="" value="Head RA">Head RA</option>
</select>
因此,它似乎选择了正确的值(驻地助理),但它也选择了“Head RA”,这就是我将之前的下拉框更改为的值。
这很奇怪,我不知道为什么会这样。有什么想法吗?
谢谢!
【问题讨论】:
标签: php html drop-down-menu