TP用ajaxReturn返回到前端的数据怎么处理?

$arr=array(array("1.三国志"=>"陈寿"),array("2.西游记"=>"吴承恩"));
$this->ajaxReturn($arr,'eval');

我上面这样返回一个二维数组 前端显示出来的是Array 这个应该数据应该怎么处理呢?

如果写成这样的话$this->ajaxReturn($arr);默认返回的是json格式的 在前端显示的结果是[{"1.\u4e09\u56fd\u5fd7":"\u9648\u5bff"},{"2.\u897f\u6e38\u8bb0":"\u5434\u627f\u6069"}] 我想要二维数组里面的数据应该怎么在js里面取出来呢?还是我返回数据方式不对呢?

ajax("{:U('data/histroy')}",oIpt1.value,function(str){
  oDiv1.innerHTML=str;      
})
阅读 5.8k
3 个回答

第二个参数应该是json,这样前台才能获取对象哦
然后格式转一下,用于跟前台通信的话,一般键不要有修改哦,因为这样相当于写死了键了。
这里建议第一层的数组的键最好是默认的01234,才更有适应性:

$arr=array(
    array(
        'book'   => '三国志',
        'author' => '陈寿'
    ),
    array(
        'book'   => '西游记',
        'author' => '吴承恩'
    )
);
$this->ajaxReturn($arr, 'json');

然后前台遍历一遍,统一输出:

ajax("{:U('data/histroy')}",oIpt1.value,function(data){
    
    var html = '';
    var len = data.length;
    for (var i = 0; i < len; i++) {
        
        html += (i + 1) + '.'; // 书的序号
        html += data[i].book + ':'; // 书名
        html += data[i].author; // 作者
        html += '<br>'; // 一行书的信息完了,换下行
    }
    oDiv1.innerHTML = html; // 一次过将data.length本书的信息放到oDiv1里
})
$.post("{:U('data/histroy')}",{post_key:post_value},function(ret){
    //这里的ret就是你想要的,已经被转成数组了,你可以循环ret,也可以直接用
    alert(ret[0]['1.三国志']);

},"json")

$arr=array(array("1.三国志"=>"陈寿"),array("2.西游记"=>"吴承恩"));

$this->ajaxReturn(json_decode($arr),'eval');
你直接用函数,吧数组转成json格式的字符串就好了, 然后再前段,在转行还原成数组就行了,

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题