我有一个 php 页面,其中从 mysql 数据库填充了一个下拉列表,当用户进行选择并单击“开始”按钮时,有关该所选项目的数据将显示在页面上。现在我的页面中一切正常,但列表项名称自动显示为默认值。 例如:有4个列表项,Featured art,pop art,nature art,fantasy art。 当用户选择流行艺术并按下“开始”按钮时,与此相关的数据会显示在页面上,但下拉列表不会包含在列表中选择的流行艺术名称。即使这样,下拉列表也会默认显示特色艺术。获取数据没有问题,但我想在下拉列表中显示作为选定的流行艺术或自然艺术或幻想艺术或特色艺术(不仅是特色艺术)及其在页面上的相关数据等。我想我的观点大家都很清楚。请帮助我。
代码如下:
<select name="category">
<?php
$sql = "SELECT id, art_name FROM category;";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
?>
<option value="<?= $row['id']; ?>"><?= $row['art_name']; ?></option>
<?php
}
?>
</select>
<input name="go" type="submit" value="Go" /></div>
<div align="center" class="showimage">
<ul class="display">
<?php
$id = (int)$_POST['category'];
$sql_search = "SELECT id, categoryid, path FROM list WHERE categoryid = $id";
$search = mysql_query($sql_search);
$sql = mysql_query("SELECT autodisplay FROM list WHERE categoryid = 2");
if (isset($_POST['go'])) {
while ($row = mysql_fetch_assoc($search)) {
?>
<li><a href="<?= $row['path']; ?>" class="highslide" onClick="return hs.expand(this)"><img src="<?= $row['path']; ?>" border="0"></a></li>
<?php }
}
else {
while ($row = mysql_fetch_assoc($sql)) {
?>
<li><a href="<?= $row['autodisplay']; ?>" class="highslide" onclick="return hs.expand(this)"><img src="<?= $row['autodisplay']; ?>" border="0"></a></li>
<?php
}
}
?>
</ul>
最佳答案
用以下内容替换您的选择列表:
<select name="category">
<?php
$sql = "SELECT id, art_name FROM category;";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
?>
<option value="<?= $row['id']; ?>"<?=($_POST['category']==$row['id'] ? ' selected="selected" : '')?>><?= $row['art_name']; ?></option>
<?php
}
?>
</select>
我添加了一个 if 语句来检查行 ID 是否与发布的变量匹配 - 如果匹配则将选项值设置为选中。
关于php - 单击执行按钮后如何保留选定的列表值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15807620/