我有一个包含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)更改报警,查看是否调用函数
2)使用file_put_contents(..)调试php端,看看SQL实际执行了什么?
3)对使用Ajax接收到的数据发出警报,查看是否正在接收?
如果您使用以上三种方法进行正确的调试,您应该很容易发现哪里出了问题,哪里出了问题?
祝你好运.