2

我有一个 5 列的 mysql 数据库表。

id、A 列、B 列、C 列、D 列

我用这些值填充了数据表,因此每列都有 2 个(不同的)值。

columnA 1, columnB 1, columnC 1, columnD 1
columnA 1, columnB 1, columnC 1, columnD 2
...
columnA 2, columnB 2, columnC 2, columnD 2

我希望该用户可以从下拉列表中选择这些值。当他/她从 A 列中选择第一个数据时,B 列的值会根据所选值出现在另一个选择框中。等等..所以我想我需要使用 ajax-jquery。这是我用过的脚本,

<script type="text/javascript">
$(document).ready(
function() {
    $(".columnA").change(
    function() {
        var columnA=$(this).val();
        var dataString = 'columnA='+ columnA;
        $.ajax (    {
                        type: "POST",
                        url: "ajax_try.php",
                        data: dataString,
                        cache: false,
                        success: function(html)
                        {
                            $(".columnB").html(html);
                        }    
                    }               
                );

                }
        );
});
</script>

和php代码。

<?php
    //index.php
    include('db.php');
    $sql=mysql_query("SELECT ID, columnA FROM try GROUP BY columnA");
    while($row = mysql_fetch_array($sql))
    {
    $id = $row['id'];
    $columnA = $row['columnA'];
    echo '<option value="'.$id.'">'.$columnA.'</option>';
    } 
?>


<?php
   //ajax_try.php
   include('db.php');
   if($_POST['columnA'])
   {
      $columnA = $_POST['columnA'];
      $sql = mysql_query("SELECT ID, columnB from try WHERE columnA = '$columnA' GROUP BY columnB");

      while($row = mysql_fetch_array($sql))
      {
         $id = $row['id'];
         $columnB = $row['columnB'];
         echo '<option value="'.$id.'">'.$columnB.'</option>';
      }
   }
?>

我得到了 columnA 的值,但是当我选择其中一个时,什么也没有发生。而且我不知道如何使用ajax绑定其他下拉列表..

4

1 回答 1

1

我建议在这里调试的最佳方法是使用以下方法:

1) 更改警报以查看是否正在调用函数

2) 使用 file_put_contents(..) 调试 php 端并查看实际执行的 SQL 是什么?

3) 提醒您使用 Ajax 收到的数据,看看您是否收到了?

如果您使用上述 3 种方法正确调试,您应该很容易发现哪里出了问题?

祝你好运。

于 2012-04-18T07:48:11.110 回答