首页 > 解决方案 > 我有将信息从 SQL Server 拉到下拉框中的 PHP 表单。我希望框中的特定项目默认选中

问题描述

此代码是从数据库表中提取的,需要它显示 Information & Tecnology SVCS - 41515 作为默认值:

    echo '<option value=" ' . $row['department']. '"' . ($row['department'] == "INFORMATION & TECHNOLOGY SVCS -41515") ? ' selected="selected"' : "".'>'.$row['department']. '</option>';

此代码将给我下拉但不是选定的定义项:echo ''.$row['department']。'';

部门:

    <?php

    $sql = "SELECT department FROM Department";
    $query = sqlsrv_query($conn,$sql);
            $query_display = sqlsrv_query($conn,$sql);
    while($row=sqlsrv_fetch_array($query_display,SQLSRV_FETCH_ASSOC))
    {
        //echo '<option value=" '. $row['department'].' ">'.$row['department']. '</option>';
        echo '<option value=" ' . $row['department']. '"' . ($row['department'] == "INFORMATION & TECHNOLOGY SVCS -41515") ? ' selected="selected"' : "".'>'.$row['department']. '</option>';
        continue;
    }
    ?>
    </select>
</td>

标签: phpsql-server

解决方案


在条件表达式周围加上括号,因为运算符优先级不是您所期望的。

    echo '<option value=" ' . $row['department']. '"' . (($row['department'] == "INFORMATION & TECHNOLOGY SVCS -41515") ? ' selected="selected"' : "").'>'.$row['department']. '</option>';

为了更容易阅读,我通常使用一个单独的变量:

if ($row['department'] == "INFORMATION & TECHNOLOGY SVCS -41515") {
    $selected = ' selected="selected"';
} else {
    $selected = "";
}
echo '<option value=" ' . $row['department']. '"' . $selected .'>'.$row['department']. '</option>';

推荐阅读