相应的 ID 未显示为 "selected" 结果下拉

Corresponding ID is not shown as "selected" result in dropdown

我有一个 php 页面,它将显示一个表单。在表格中你需要 select 一个驱动程序。驱动程序是 select 从 mysql 数据库编辑的,那部分工作得很好。但是,我希望看到已登录的用户自动 select 作为此表单的默认驱动程序。

我错过了什么?非常感谢任何帮助!

mysqli_set_charset($connection, 'utf8');

$query  = "SELECT name, substring_index(substring_index(mrb_users.user_qualified,'|',-2),'|',1) as driver, id  ";
$query .= "from mrb_users having driver like 'B%' ORDER BY name ";
$sql = mysqli_query($connection, $query);

$row = mysqli_num_rows($sql);
while ($row = mysqli_fetch_array($sql)){
echo "<option value='". $row['id'] ."' if('".$row['id']."'==='".$_SESSION['id']."') 'selected'>" .$row['name'] . ' - ' .$row['chauffeur'] ."</option>" ;
}

$conn->close();

看起来 PHP if 语句包含在双引号中,因此逐字打印。如果是这样,您应该可以使用浏览器的 HTML 检查器查看它。

为清楚起见,我建议 (1) 将 if 语句分解为单独的一行,并且 (2) 使用 sprintf() 而不是连接大量字符串:

$sel = ($row['id'] === $_SESSION['id'])
  ? 'selected'
  : '';
sprintf('<option value="%s" %s>%s - %s</option>',
        $row['id'], $sel, $row['name'], $row['chauffeur']);