我有一个表格,它将填充mysql表中的数据:
$db = mysql_connect("localhost:3306", "user", "pass");
mysql_select_db("db",$db);
$sql = "Select * from wp_awa_upload where uid = '$_SESSION[id]' and project = '$_SESSION[project]'";
//echo $sql;
$ergebnis = mysql_query($sql);
$row = mysql_fetch_object($ergebnis);
$category = $row->cat;
变量$ category包含用户先前输入的类别的名称。
在这种形式中我有一个下拉列表,其中将填充来自mysql表的数据:
<? $db = mysql_connect("localhost:3306", "user", "pass");
mysql_select_db("db",$db); mysql_query("SET CHARACTER SET 'utf8'"); $sql = "SELECT cat FROM subcategory order by cat asc";
$result = mysql_query($sql);
echo "<select name='parent_cat'>";
while ($row = mysql_fetch_array($result)) {
echo "<option value='" . $row['cat'] . "'>" . $row['cat'] . "</option>";
}
echo "</select>"; ?>
下拉列表包含所有可选类别。我现在想要实现的是在Dropdown中突出显示(或设置为1位置)$ category。
像
这样的东西if ($row['cat'] == $category) {
echo '<option value="'.$row['cat'] .'" selected="selected">'.$row['cat'] .'</option>'; } else {
echo '<option value="'.$value.'" selected="selected">'.$value.'</option>';
}
echo "</select>"; ?>
我怎样才能做到这一点?
感谢您的支持!
亲切的问候,
的Stefan
答案 0 :(得分:0)
你可以用这样的三元运算符来实现这个目的:
<option value="<?= $row['cat']; ?>" <?= $row['cat'] == $category ? 'selected' : ''; ?>>
三元运算符检查true或false。 '?'之后的第一个选项为真,并且':'后的第二个选项为false。如果您正在迭代的行等于您尝试设置为所选的行,则php将回显“已选择”。
另外,你注意到我改变了样式。 php中的一个最佳实践是让html成为html和php成为php。注意我是如何回显值和三元语句而不是回显出整个html块。
以下是您的代码:
<?php
$db = mysql_connect("localhost:3306", "user", "pass");
mysql_select_db("db",$db); mysql_query("SET CHARACTER SET 'utf8'");
$sql = "SELECT cat FROM subcategory order by cat asc";
$result = mysql_query($sql); ?>
<select name='parent_cat'>
<?php while ($row = mysql_fetch_array($result)) { ?>
<option value="<?= $row['cat']; ?>" <?= $row['cat'] == $category ? ' selected' : ''; ?>>
<?= $row['cat']; ?>
</option>
<?php } ?>
</select>
你可以看到从html中识别php要容易得多,反之亦然。