2012-04-18 190 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種方法調試正確的方式,你應該很容易地找到哪裏出了問題,在哪裏?

祝你好運。