2015-07-13 64 views
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); 
?> 
+1

嘗試在您的php中刪除'json_encode',只需'echo $ response' – Neverever

+0

沒有這樣的運氣。我已經試過,但回聲「」;在.php文件中,它不顯示。 – MiamiMoosh

+0

嗯...實際回聲「」;現在正在工作...也許它是.php文件 – MiamiMoosh

回答

0

的問題是在php文件中缺少空間:

故障線路

$response = '<option'; 

更換

$response = '<option '; 
+0

加在一起。我很確定你的選擇框只有1個選項。 – roullie