以下是我如何通过PHP创建json响应:
foreach($results as $row){
$result['address'][] = $row['name'];
$result['office_id'][] = $row['office_id'];
}
echo json_encode($result);
所以我有两个变量:address
和office_id
。
以下是我处理回复的方式:
$.ajax({
url: '../select.php',
type: 'post',
data: {
city_id: EcontCity
},
dataType: 'json',
success: function (data) {
$('#shipping-office-select').empty();
$.each(data.address, function(index, address) {
$('#shipping-office-select').append('<option value="'+ office_id +'" >'+ address +'</option>');
});
}
});
因此,我可以使用此代码获取address
的信息,但可以获得office_id
的回复。
为什么呢?你能帮我解决这个错误吗?
提前致谢!
答案 0 :(得分:1)
在each
函数中,您遍历$result['address']
数组。您使用office_id
,该函数尚未在函数内的任何位置声明。
我不确定我是否了解所有内容,但如果地址和办公室ID数量完全相同,您可以尝试:
$.each(data.address, function(index, address) {
$('#shipping-office-select').append('<option value="'+
data.office_id[index]
+'" >'+ address +'</option>');
});
答案 1 :(得分:0)
PHP中的迭代是错误的。另外,在JS代码中,您在哪里定义office_id
?
这是我重做它的方式。
<强> PHP:强>
foreach ($results as $row) {
$result[] = array(
'address' => $row['name'],
'office_id' => $row['office_id']
);
}
echo json_encode($result);
您的 AJAX ,success
方法:
success: function (data) {
$.each(data, function (i, row) {
$('#shipping-office-select').append('<option value="' + row.office_id + '" >' + row.address + '</option>');
});
}