您现在的位置是:

Jquery eval ajax返回的json数据读取undefined的解决办法

发布时间:2020-01-15作者:小灵龙来源:未知点击:137

问题描述:

最近在用jquery的ajax方法传递接收json数据时发现一个问题,那就是返回的data数据,有时候可以直接作为json数据使用,具体元素可以用data.name获取。可有时候又不行。直接显示undefined。这简直就是一个坑啊。

解决办法:


php代码:

<?php

        $k3 = date("Y-m-d H:i:s",strtotime('-1 months'));

        $k4 = date("Y-m-d H:i:s");

        $data = [];

        $t_str1 = [];

        $t_str2 =  [];

        $t_str3 =  [];

        $datelist = getDateFromRange($k3,$k4);

        for($i=0;$i<count($datelist);$i++)

        {

            $t_date1 = $datelist[$i] . ' 00:00:00';

            $t_date2 = $datelist[$i] . ' 23:59:59';

            $order_num = OrderModel::where('order_state','=','2')->where("is_type","=",3)->where('confirm_date','between',[strtotime($t_date1),strtotime($t_date2)])->count();

            $order_price = OrderModel::where('order_state','=','2')->where("is_type","=",3)->where('confirm_date','between',[strtotime($t_date1),strtotime($t_date2)])->sum('realoil_price');


            $t_str1[] =  date('Y-m-d',strtotime($datelist[$i])) ;

            $t_str2[] = $order_num*4;

            $t_str3[] = $order_price*4;

        }

        $data["xAxis_date"] = $t_str1;

        $data["series_date1"] = $t_str2;

        $data["series_date2"] = $t_str3;

          // echo json_encode(['result'=>1,'xAxis_date'=>$t_str1,'series_date1'=>$t_str2,'series_date2'=>$t_str3]);//方法二


        return json_encode($data);//方法一

?>

jquery代码:

 $.ajax({

        type:"POST",

        url:"{:url('chashu')}",

        cache: false,

        dataType:"json",

        data:{'stime':s_time,'etime':e_time,'washercar_id':washercar_id},

        success:function(data){

          arr=eval("("+data+")");//方法一

          console.log(arr.add);//方法一

         console.log(data.add);//方法二

       }

});



如果帮到了您,请打赏一二!

标签: