我选择cat_id_1后尝试使用数据库值更新选择框sub_cat_id_1。我得到的结果是一个空白框。在故障排除中,我发现javascript正在接收正确的id,并且当自己运行ajax_subcat.php文件时,它正确访问数据库并吐出正确的值。因此,我相当肯定问题似乎出现在某个地方的ajax代码中,只是不确定在哪里。
我提前为此提供任何帮助。
edit.php
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
function Cat_1_Change(category_id){
var dataString = 'id='+ category_id;
$.ajax
({
type: "POST",
url: "ajax_subcat.php",
data: dataString,
success: function(result)
{
$(".sub_cat_id_1").html(result);
}
});
}
</script>
&#13;
edit.php(HTML)
<select name="cat_id_1" class="cat_id_1" onchange="Cat_1_Change(this.selectedIndex);">
<option selected="selected">--Select Category--</option>
<option value="1".>Example 1</option>
<option value="2".>Example 2</option>
</SELECT>
<select name="sub_cat_id_1" class="sub_cat_id_1">
<option>--Select Subcategory--</option>
</select>
&#13;
ajax_subcat.php
<?php require_once("db.php"); ?>
<?php
if($_POST['id']){
global $database;
$id = $_POST['id'];
$sql="SELECT id, sub_cat_name
FROM subcategories
WHERE category_id='$id'
";
$result = $database->query($sql);
while($row=mysqli_fetch_assoc($result))
{
$response = '<option';
$response .= 'value="'.$row['id'].'">'.$row['sub_cat_name'].'</option>';
}
}
echo json_encode($response);
?>
答案 0 :(得分:0)
问题是php文件中缺少空格:
有线错误
$response = '<option';
替换
$response = '<option ';