我打算做的是从我的表中列出我的所有用户,将它们显示在列表中,然后在下拉列表中突出显示表中的当前条目。
这是我目前的代码:
print "<option value=".$row2['user_id']." if($row2['user_id']==$row['user_id']){ echo 'selected=\"selected\"';}>".$row2['fname']." ".$row2['lname']."</option>";
但它不起作用。
目前我正在运行的代码是这样的:
<?
//$results4 = mysql_query("select * from user_info order by fname");
$data2 = "select * from user_info order by fname";
$result2 = mysql_query($data2);
print "<select name=\"timesheet_approver_1\">";
print "<option value=".$row['user_id']." selected='selected'>".$row['fname']." ".$row['lname']."</option>";
while ($row2 = mysql_fetch_assoc($result2)) {
print "<option value=".$row2['user_id'].">".$row2['fname']." ".$row2['lname']."</option>";
}
print "</select>";
?>
这会列出我的所有条目,但会在顶部列出的表格中添加一个条目。我只是坚持如何只列出所有条目并突出显示表中的那个。
答案 0 :(得分:0)
您无法在尝试的情况下在print语句中嵌入if语句。
但是,你可以在不使用if三元运算符的情况下进行比较:
print "<option value='".$row2['user_id']."' " . ($row2['user_id']==$row['user_id'] ? 'selected="selected"' : '' ) . '>' . $row2['fname']." ".$row2['lname']. "</option>";
如此工作:
echo ( $a == $b ? 'a==b evaluates true' : 'a==b evaluates false' );
来自手册
"The expression (expr1) ? (expr2) : (expr3) evaluates to expr2 if expr1 evaluates to TRUE, and expr3 if expr1 evaluates to FALSE."