相应的ID在下拉列表中未显示为“已选择”

问题描述 投票:1回答:1

我有一个php页面,它将显示一个表单。在表格中,您需要选择一个驱动程序。从mysql数据库中选择驱动程序,该部分工作正常。但是,我希望看到已自动登录的用户被选为该表单的默认驱动程序。

我想念的是什么?非常感谢您的帮助!

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 html select echo selected
1个回答
0
投票

看起来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']);

© www.soinside.com 2019 - 2024. All rights reserved.