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

查看:155
本文介绍了php - 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;      
})

解决方案

第二个参数应该是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里
})

这篇关于php - TP用ajaxReturn返回到前端的数据怎么处理?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆