前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TP用ajaxReturn返回到前端的数据怎么处理?

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

作者头像
PM吃瓜
发布2019-08-12 17:05:21
1.3K0
发布2019-08-12 17:05:21
举报
文章被收录于专栏:PM吃瓜(公众号)PM吃瓜(公众号)

问题: (thinkphp)TP用ajaxReturn返回到前端的数据怎么处理? 描述:

代码语言:javascript
复制
$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里面取出来呢?还是我返回数据方式不对呢?

代码语言:javascript
复制
ajax("{:U('data/histroy')}",oIpt1.value,function(str){
  oDiv1.innerHTML=str;      
})

解决方案1:

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

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

解决方案2:

代码语言:javascript
复制
$.post("{:U('data/histroy')}",{post_key:post_value},function(ret){
    //这里的ret就是你想要的,已经被转成数组了,你可以循环ret,也可以直接用
    alert(ret[0]['1.三国志']);
},"json")

解决方案3:

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

代码语言:javascript
复制
$arr=array(
    array(
        'book'   => '三国志',
        'author' => '陈寿'
    ),
    array(
        'book'   => '西游记',
        'author' => '吴承恩'
    )
);
$this->ajaxReturn($arr, 'json');
代码语言:javascript
复制

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

代码语言:javascript
复制
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里
})
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tech爬虫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档