我有幾個下拉框。我希望第一個選擇類別,然後對PHP文件執行AJAX調用,選擇適當的子類別數組並將其返回到第二個下拉列表。代碼如下:php陣列通過AJAX下拉框
與子類的PHP文件:
$category = $_POST['category'];
if ($category == "World"){
$subcategory = array('Europe' => "Europe", 'North America' => "North America", 'South America' => "South America");}
else if ($category == "Sport"){
$subcategory = array("Football , Football", "Rugby , Rugby", "Cricket , Cricket"); }
echo json_encode($subcategory);
的AJAX
function getsub(category, subcategory) {
var category = document.getElementById('category').value;
$('#subcategory').empty();
$('#subcategory').append("<option>loading...</option>");
//kicking off AJAX
$.ajax({
url: "../php/subcategory.php",
type: "POST",
async: true,
//this is where we define the data that we will send
data: {
category: category,
},
success: function (subresults) {
var subresults = JSON.parse(subresults);
$('#subcategory').empty();
$('#subcategory').append("<option value='0'>----Select Sub Categry---</option>");
$.each(subresults, function (i, item) {
$('#subcategory').append('<option value="' + subresults[i].id + '">' + subresults[i].name + '</option>');
});
},
});
return false;
}
的原因,我這樣做是因爲我想保留的子類別在服務器端,並且易於更新而無需干涉代碼。目前,這是將數組中的項目輸出到下拉框中,但它們未經定義即將通過。你能幫我把正確的值輸出到下拉框中嗎?
請問您的AJAX調用的工作?向我們展示一些示例數據,因爲它在您的AJAX調用('console.log(subresults)')中返回,然後在您的成功函數中解析它們) –
您在執行'echo json_encode($ subcategory);' ? – Sean
你的php數組中沒有'id'和'name'鍵。你應該改變爲'subresults [i]'。 – Sean