0
我想在选择cat_id_1后用数据库值更新选择框sub_cat_id_1。我得到的结果是一个空白的框。在故障排除时,我发现javascript正在接收正确的id,并且在单独运行ajax_subcat.php文件时,它正确访问数据库并吐出正确的值。因此,我相当肯定,问题似乎在我的ajax代码的某处,只是不知道在哪里。Ajax/php/javascript选择框不更新
我很欣赏任何援助提前为此。
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>
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>
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);
?>
尝试在您的php中删除'json_encode',只需'echo $ response' – Neverever
没有这样的运气。我已经试过,但回声“”;在.php文件中,它不显示。 – MiamiMoosh
嗯...实际回声“”;现在正在工作...也许它是.php文件 – MiamiMoosh