jQuery / JSON - 响应$ .each数组中的多个变量

时间:2016-01-22 13:42:45

标签: php json

以下是我如何通过PHP创建json响应:

    foreach($results as $row){
        $result['address'][] = $row['name'];
        $result['office_id'][] = $row['office_id'];
    }
echo json_encode($result);  

所以我有两个变量:addressoffice_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的回复。

为什么呢?你能帮我解决这个错误吗?

提前致谢!

2 个答案:

答案 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>');
         });
 }