【问题标题】:Default to an option on a dropdown option默认为下拉选项上的一个选项
【发布时间】:2021-03-19 16:02:00
【问题描述】:

我正在尝试根据员工编号将下拉菜单默认为某个值,我已经设法让它说出来,但这不是正确的选项,因为这些选项是从 MS SQL 服务器上提取的,所以它只是为“Labour”创建了 2 个选项,例如,一个来自 SQL 的选项有效,但随后创建了一个,因为它是默认选项,但它不允许我正确发布表单。

elseif ($_SESSION['employeeNo'] == '330'){
echo "<option selected>Labour</option>";
while ($costrow = sqlsrv_fetch_array($coststmt, SQLSRV_FETCH_ASSOC)) {
$costOption = $costrow["Cost_Centres"];
$costArea = $costrow["Area"];
echo "<option value='" . $costOption . " (" . $costArea . ")'> $costOption </option>";
}
    }

Labour 2 来自 SQL 服务器,这是我需要它默认设置的服务器,以便我可以使用它来写回数据库。否则,它认为该下拉菜单没有设置。

所有帮助都表示感谢。

【问题讨论】:

  • 您只需在符合您条件的选项中添加selected。所以在 echo "&lt;option value='"... 连接 selected 如果条件满足。
  • 很明显,如果你手动输入一个,另一个来自数据库,它会创建两个选项 Labor。删除第一个回声。在循环中放入一个变量$selected='';,如果满足你的要求,设置$selected='selected';并将$selected放入选项字符串中;

标签: php html twitter-bootstrap


【解决方案1】:

只输出selected="selected"作为默认选项。

为了清楚起见,我删除了无用的连接,并使用$selected 作为变量来分离关注点。当然你可能希望以不同的方式组织代码,并更改测试$costOption == 'Labour'

elseif ($_SESSION['employeeNo'] == '330') {
  while ($costrow = sqlsrv_fetch_array($coststmt, SQLSRV_FETCH_ASSOC)) {
    $costOption = $costrow["Cost_Centres"];
    $costArea = $costrow["Area"];
    $selected = ($costOption == 'Labour') ? 'selected="selected"' : '';
    echo "<option value='$costOption ($costArea)' $selected> $costOption </option>";
  }
}

如果您从未遇到过,(condition) ? X : Y 是三元运算符。如果condition 为真,则选择X,否则选择Y

【讨论】:

    猜你喜欢
    • 2020-10-18
    • 2015-08-29
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多