我在使用三元运算符吗?

Am I using the ternary operator?

这是我的代码:

echo "<option value=".$crew_rank_id.".(($crew_rank_id == $crew_rank) ? "selected" : "").>".$crew_rank_table."</option>";

我想做的是从 echo

中的数据库中回显选定的值

试试这个, 检查 $crew_rank_id == $crew_rank 存储在变量中并在 <option> 标签

中分配给它
$selected = "";
if($crew_rank_id == $crew_rank)
{
    $selected = "selected";
}

echo "<option value=".$crew_rank_id.".$selected.>".$crew_rank_table."</option>";

您在多处缺少双引号。第一个得到的值和 "selected" 是一个单词,没有空格。选项标签结束前的第二个。

echo "<option value=".$crew_rank_id." ".(($crew_rank_id == $crew_rank) ? "selected" : "").">".$crew_rank_table."</option>";

您在字符串中混合了 PHP 语句和 PHP 变量,并且缺少一些引号和 HTML-标签。

这应该有效:

echo "<option value='{$crew_rank_id}' ". (($crew_rank_id == $crew_rank) ? "selected" : "") . ">{$crew_rank_table}</option>";