mysql_fetch_array问题

时间:2013-03-31 04:15:28

标签: php html mysql css web

以下是代码:

<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并在第二个循环查询中使用它,但由于变量管道似乎无法使其工作,有没有人知道解决这个问题?

2 个答案:

答案 0 :(得分: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'... with ...负载( '' ...

如果将脚本放在doc的头部,则必须将其包装在$(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>';
            }
        } ?>

答案 1 :(得分:0)

  

当用户选择第一个选择框中的第一个选项时,我希望它向下滑动第二个框(已经有了工作)但我需要帮助将基于用户的mysql数据库中的数据导入第二个选择框第一选择。

对于你想要的东西,你需要:

  • 通过jQuery(客户端)
  • 收集选定的第一个选项
  • 通过jQuery.ajax()或同义词(客户端)
  • 执行AJAX请求
  • 定义收集信息的AJAX请求的登录页面(服务器端)
  • 更新第二个选项集(客户端)