我有几个下拉框。我希望第一个选择类别,然后对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