2012-04-18 187 views
2

我有一个MySQL数据库表5列。从同一个数据表填充下拉列表与ajax

ID,columnA,columnB,columnC,columnD

我填充数据表与这些值,以便每一列具有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结合其他下拉列表..

回答

1

我会建议在这里调试最好的方法是使用下面的方法:

1)警报的变化,看看功能是否被叫与否

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

3)使用Ajax警报您收到的数据,看看您是否收到它?

如果你使用上面的3种方法调试正确的方式,你应该很容易地找到哪里出了问题,在哪里?

祝你好运。