所以我在PHP方面有这个:
//enclosed in for loop start
$titleArray[] = $title;
$idsArray[] = $id;
//enclosed in for loop end
循环运行后,将填充数组,这里显示的是var_dump。然后我们对json进行编码并退出,将其作为jQuery的响应发送来处理。
var_dump($titleArray);
array(2) {
[0]=>
string(2) "T1"
[1]=>
string(2) "T2"
}
var_dump($idsArray);
array(2) {
[0]=>
string(2) "I1"
[1]=>
string(2) "I2"
}
$output = array('success' => true, 'type' => 'valid', 'titles' => ''.$titleArray.'', 'ids' => ''.$idsArray.'');
echo json_encode($output);
exit();
这是我遇到问题的地方。我似乎无法访问这些数组(标题/ ids)。答复是:
{"type":"valid","titles":"Array","ids":"Array"}
以下是处理响应的后期成功区域:
success: function(output) {
var x = $.parseJSON(output);
if(x.type=='valid'){
$.each(x.titles, function(k, v) {
$("#output-area").append('<div id="'+v.ids+'" class="title">Title: '+v.titles+'</div>');
});
}
}
此时应添加2个新div,因为数组中有2个项目。相反,我得到5个新添加的div,未定义为v.ids
和v.titles
值。如何在这种情况下获得正确和期望的输出?
答案 0 :(得分:1)
基本上,您已将Array
传递给json_encode()
array('success' => true, 'type' => 'valid', 'titles' => $titleArray, 'ids' => $idsArray );
答案 1 :(得分:1)
创建单个数组
$data[] = array('id' => $id , 'title' => $title );
$output = array('success' => true, 'type' => 'valid', 'data' => $data );
echo json_encode($output);
exit();
在javascript中
success: function(output) {
var x = $.parseJSON(output);
if(x.type=='valid'){
$.each(x.data, function(k, v) {
$("#output-area").append('<div id="'+v.id+'" class="title">Title: '+v.title+'</div>');
});
}
}