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