提问者:小点点

使用ajax从同一数据表填充下拉列表


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

id,columnA,columnB,columnC,columnD

我用这些值填充datatable,因此每列有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

我希望用户可以从下拉列表中选择这些值。当他/她从columnA中选择第一个数据时,columnB值会根据所选值出现在另一个选择框中。等等..所以我想我需要使用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绑定其他下拉列表。


共1个答案

匿名用户

我建议最好的调试方法是使用以下方法:

1)更改报警,查看是否调用函数

2)使用file_put_contents(..)调试php端,看看SQL实际执行了什么?

3)对使用Ajax接收到的数据发出警报,查看是否正在接收?

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

祝你好运.