0

所以我在 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();

这是我遇到问题的地方。我似乎无法再访问这些数组(标题/ID)了。回应是:

{"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,其中 undefined 作为v.idsv.titles值。在这种情况下,如何获得正确和所需的输出?

4

2 回答 2

1

基本上你有Array通行证json_encode()

array('success' => true, 'type' => 'valid', 'titles' => $titleArray, 'ids' => $idsArray );
于 2013-05-22T20:11:19.437 回答
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>');
                     });
                 }
         }
于 2013-05-22T20:32:13.687 回答