我的网站上有一个博客和问题部分,其中包含类别。当用户撰写问题或博客时,会出现一个下拉菜单,允许您选择类别。当您编辑其中任何一个时,您可以选择通过下拉列表更改您的类别。当您去编辑博客时,类别下拉列表是标准样式下拉列表,我使用<option value="1" <?php if($blog->category == "1"){echo "selected";}?> >Art and Literature</option>
来显示以前选择的类别。我正在接受另一位开发人员离开的地方,所以对于问题,他将下拉放入循环中。作为一个新手,我不知道如何在while循环中“回声选择”以使其拉动之前选择的cat.Here是循环
<select name="category">
<option value="null">Choose Category</option>
<?php
$query = "SELECT * FROM `Categories_questions` ORDER BY `CategoryName` ASC";
$request = mysql_query($query,$connection);
while($result = mysql_fetch_array($request)) {
echo "<option value='" . $result['id'] . "'>" . $result['CategoryName'] . "</option>";
}
?>
</select>
答案 0 :(得分:5)
你可以用完全相同的方式做到这一点。假设您运行此代码的$ blog对象可用:
while($result = mysql_fetch_array($request)) {
$selected = ($result['id']==$blog->category) ? ' selected="selected"' : '';
echo "<option value='" . $result['id'] . "' ".$selected.">" . $result['CategoryName'] . "</option>";
}
答案 1 :(得分:0)
while($result = mysql_fetch_array($request)) {
$selected = ($result['id'] == $blog->category) ? "selected" : "";
echo "<option value='" . $result['id'] . "' $selected>" . $result['CategoryName'] . "</option>";
}
如果你不知道那是做什么的,那就是ternary operator。实际上,它会检查$result['id']
是否等于当前$blog->category
,如果是,则$selected
将包含字符串“selected”。如果没有,它只包含一个空字符串。然后,在<option>
元素内,您要么输出又要空字符串或“已选中”。
答案 2 :(得分:0)
我会做类似的事情:
while($result = mysql_fetch_array($request)) {
$value = $result['id'];
$selected = "";
if (check_if_selected($value)) {
$selected = "selected";
}
echo "<option value='" . $value . "' " . $selected . ">" .
$result['CategoryName'] . "</option>";
}