Ajax / php / javascript选择框不更新

时间:2015-07-13 01:48:53

标签: javascript php jquery html ajax

我选择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;
&#13;
&#13;

edit.php(HTML)

&#13;
&#13;
<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;
&#13;
&#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);
?>

1 个答案:

答案 0 :(得分:0)

问题是php文件中缺少空格:

有线错误

$response = '<option';

替换

$response = '<option ';