HTML下拉菜单先前选定的值

3

我正在使用PHP和HTML构建一个HTML表格,并通过PHP while循环生成。我正在使用MySQL数据库中所有不同投资组合名称填充HTML下拉菜单。为此,我正在执行以下操作:

$query2 = "SELECT DISTINCT PORT FROM CELP";
$result2 = mysql_query($query2) or die (mysql_query($default));
if ($result2)
{
  {
echo "<select id='port' name='port'>";
while ($col = mysql_fetch_array($result2)) {
echo "<option value='" . $col[0] . "'>" . $col[0] . "</option";
}
echo "</select>";
} }

这个可以正常工作,但是每当我提交表单时,下拉框的值都会重置为默认的第一个值。如何在上次提交的选项中放置“selected”标签,只有那个呢?顺便说一下,我使用$_GET和变量名称是port,所以它在URL中显示当前选择的投资组合。
1个回答

2

请这样做:

while ($col = mysql_fetch_array($result2)) {
    if(shouldBeSelected)
    {
       echo "<option selected="selected" value='" . $col[0] . "'>" . $col[0] . "</option";
    }
    else
    {
        echo "<option value='" . $col[0] . "'>" . $col[0] . "</option";
    }
}

为应该被选中的那个做这件事。你只需要使用 selected 属性。


谢谢,但我希望它可以动态更改所选内容。选项是用“while”循环构建的,因此我需要一行代码来生成所有选项,但又知道要选择哪一个。 - user1650487
@user1650487,这正是它将要做的事情,只需将此代码放入您的“while循环”中即可... - brso05
@user1650487,刚刚更新了它,你仍然应该将它放在while循环中,只需检查元素是否与URL中的元素匹配,如果匹配,则设置optionselected... - brso05
尝试了但没有成功:while ($col = mysql_fetch_array($result2)) {if($port==$col[0]) { echo "<option selected='selected' value='" . $col[0] . "'>" . $col[0] . "</option>"; } else { echo "<option value='" . $col[0] . "'>" . $col[0] . "</option>"; }} echo "</select>"; - user1650487
没事了,我解决了。只是我自己的一个语法错误。谢谢! - user1650487
1
@user1650487 没问题,很高兴能帮到你! - brso05

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接