0
我有兩個選擇框,並希望基於第一個選擇框的onchange填充第二個選擇框。所以我的第一個選擇框代碼麻煩在處理JSON響應
<select id="category-box" name="category" onchange="showCrops()" >
<option value ="0">Select category</option>
<?php
$query = $con->query("Select*from categories");
while($row = $query->fetch_object())
{
echo "<option value = '".$row->category_id."'>".$row->category."</option>";
}
?>
</select>
平變化功能Ajax調用 功能showCrops(){
var name = $('#category-box').val();
$.ajax({
type: "POST",
url: "getCropName.php",
data: {category:name},
dataType: 'json',
success: function(data, textStatus, jqXHR)
{
var opts = $.parseJSON(data);
$.each(opts, function(i,d) {
$('#crop-box').append('<option value="' + d.crop_id + '">' + d.crop_name + '</option>');
});
},
error: function (jqXHR, textStatus, errorThrown)
{
console.log(textStatus);
}
});
}
PHP代碼得到響應
header('Content-type: text/html; charset=utf-8');
include("connect.php");
$category = $_POST['category'];
$sql1 = $con->query("SELECT category_id from categories where category ='".$category."' ");
$row1= $sql1->fetch_array();
$sql2 = $con->query("SELECT * from crop_category where category_id ='".$row1['category_id']."' ");
while($row2 = $sql2->fetch_assoc()){
echo json_encode($row2);
}
JSON迴應是
{"crop_id":"1","category_id":"1","crop_name":"rice"} {"crop_id":"2","category_id":"1","crop_name":"wheat"}
但我在主php頁面上得到'parsererror'。我的代碼有什麼問題?我在JavaScript中的知識較少,因此可能需要更正才能通過第二個選擇框進行填充。
在PHP產生JSON響應是錯誤的,則這些對象必須包裝成盒支架和逗號內的陣列分隔:' [{...},{...}]'。另外我會改變內容類型爲'application/json'。 – Imperative
我需要解決方案。我沒有得到它 –