1

我有一个 php 页面,其中从 mysql 数据库填充了一个下拉列表,当用户进行选择并单击“开始”按钮时,有关该选定项目的数据将显示在页面上。现在一切都在我的页面中正常运行,但列表项名称会自动显示为默认值。例如:有 4 个列表项,特色艺术、波普艺术、自然艺术、幻想艺术。当用户选择 pop art 并按下 go 按钮时,与此相关的数据显示在页面上,但下拉列表不包含在 list 中选择的 pop 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>

这是运行页面

4

1 回答 1

2

将您的选择列表替换为以下内容:

<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 是否与发布的变量匹配 - 如果是,则将选项值设置为选中。

于 2013-04-04T09:41:42.760 回答