0

这是代码:

<select name="op1" id="op1" class="op1">
    <option value=""> -- please choose -- </option>
    <?php
        while($row = mysql_fetch_array($query)){
            $id = $row['id'];
            $name = $row['name'];
            echo '<option value="'.$id.'">'.$name.'</option>';
        }
    ?>
</select>
<br />
<select name="op2" id="op2" style="margin-top:20px" class="op2">
    <option value=""> -- please choose -- </option>
    <?php
        $query2 = mysql_query("SELECT * FROM cat2 WHERE cor = '$id' ORDER BY id ASC");
        while($row2 = mysql_fetch_array($query2)){
            $id2 = $row2['id'];
            $name2 = $row2['name'];
            echo '<option value="'.$id2.'">'.$name2.'</option>';
        }
    ?>
</select>

我想要做的是从第一个循环中选择 $id 并在第二个循环查询中使用它,但由于管道可变,似乎无法让它工作,有人知道解决这个问题吗?

4

2 回答 2

0
<?php
 $ids=array();
    while($row = mysql_fetch_array($query)){
            $id = $row['id'];
        $ids[]=$id;
        $name = $row['name'];
        echo '<option value="'.$id.'">'.$name.'</option>';
    }
?>

第二个php块;

<?php
foreach ($ids as $id) {
    $query2 = mysql_query("SELECT * FROM cat2 WHERE cor = '$id' ORDER BY id ASC");
    while($row2 = mysql_fetch_array($query2)){
        $id2 = $row2['id'];
        $name2 = $row2['name'];
        echo '<option value="'.$id2.'">'.$name2.'</option>';
    }
}
?>

下一行代码使用 ajax。您必须创建一个名为 ajax.php 的新文件。您可以使用同一个文件,将 ajax.php 中的所有代码(添加出口;在末尾)放在文档的最顶部,然后将 ...load('ajax.php'... 更改为 ...加载(''...

如果将脚本放在文档的头部,则必须将其包装在 $(function(){}); 加载页面中的所有元素后运行。

未经测试的代码。但我们走了。如果我在某个地方错了,请任何人评论。

AJAX

    <select name="op1" id="op1" class="op1">
        <option value=""> -- please choose -- </option>
        <?php
            while($row = mysql_fetch_array($query)){
                $id = $row['id'];
                $name = $row['name'];
                echo '<option value="'.$id.'">'.$name.'</option>';
            }
        ?>
    </select>
    <br />
    <select name="op2" id="op2" style="margin-top:20px;" class="op2">

    </select>

 <script type="text/javascript">
      $('#op1').change(function() {
          $('#op2').load('ajax.php',{id:$(this).val()});
     });

 </script>

ajax.php 文件:

   <?php if (isset($_REQUEST['id'])) {  $id = $_REQUEST['id']; ?>
      <option value=""> -- please choose -- </option>
        <?php
            $query2 = mysql_query("SELECT * FROM cat2 WHERE cor = '$id' ORDER BY id ASC");
            while($row2 = mysql_fetch_array($query2)){
                $id2 = $row2['id'];
                $name2 = $row2['name'];
                echo '<option value="'.$id2.'">'.$name2.'</option>';
            }
        } ?>
于 2013-03-31T04:19:29.083 回答
0

当用户在第一个选择框中选择第一个选项时,我希望它滑下第二个框(已经可以使用)但是我需要帮助根据用户的首选将数据从 mysql 数据库获取到第二个选择框。

对于您想要的,您需要:

  • 通过 jQuery 收集选择的第一个选项(客户端)
  • 通过jQuery.ajax()或同义词(客户端)执行 AJAX 请求
  • 为 AJAX 请求定义登录页面以收集信息(服务器端)
  • 更新第二个选项集(客户端)
于 2013-03-31T05:59:55.720 回答