thinkphp - TP为什么返回的数据一直都是array??

查看:223
本文介绍了thinkphp - TP为什么返回的数据一直都是array??的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

第一次我这样在js里面循环输出ajax返回的数据 但是只输出一个array的一个y字母

$res=$xiao->field("title")->select();
$this->ajaxReturn($res,'eval');


ajax("{:U('zhuye/zhuye')}",oV1,function(str){
  for(i=0;i<str.length;i++){
       oSp1.innerHTML=str[i];
   }
});

后来我在后台循环数组然后再输出 为什么这样输出到前台显示出来还是一个array
这是为什么?ajax应该怎么输出返回的数据呢?

$res=$xiao->field("title")->select();
foreach($res as $v){
    $this->ajaxReturn($v,'eval');
}

ajax("{:U('zhuye/zhuye')}",oV1,function(str){
     oSp1.innerHTML=str;
});

解决方案

默认情况下ajaxReturn返回的是json数据,但是需要注意的是他对返回的json数据做了包装使其更加的规范,所以他返回的json数据其实包含了三个字段,status,info,data

其中data才是你要的json数据,所以你前端ajax接收到数据的时候,你真正的数据是在str.data中

建议多利用chrome等浏览器的web开发调试工具,里面networking中可以看到XHR URL中返回的json数据是怎么样的结构,然后还可以利用console.log来打印js中变量结构,更高级一些的 还可以用调试工具

这篇关于thinkphp - TP为什么返回的数据一直都是array??的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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