php - TP用ajaxReturn返回到前端的数据怎么处理?
高洛峰
高洛峰 2017-04-11 09:58:24
[PHP讨论组]
$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){
  op1.innerHTML=str;      
})
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
PHP中文网

第二个参数应该是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>'; // 一行书的信息完了,换下行
    }
    op1.innerHTML = html; // 一次过将data.length本书的信息放到op1里
})
PHP中文网
$.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格式的字符串就好了, 然后再前段,在转行还原成数组就行了,

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号