开发者社区 问答 正文

highcharts中为什么不能使用ajax传回来的数组?

$(function(){ 
var idaccount=window.parent.frames["upFrame"].idaccount; 
var xmlhttp=new XMLHttpRequest();
//ajax返回值
    var arr;

    xmlhttp.open("GET","ajaxuserbloodpressure.php?idaccount="+idaccount,true);
        xmlhttp.send();
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState== 4 && xmlhttp.status== 200 )
{
            arr=xmlhttp.responseText;
            var arr_obj=eval(arr); //ajax返回值变换为json数组对象,arr_obj这个时候为 //数组5,3,7
            var ceshi=[1,5,54];
$('#lineChart').highcharts({ 
chart: { 
type: 'line' ,
zoomType: 'x'
}, 
title: { 
text: '曲线' 
},
yAxis: { 
min: 0, 
title: { 
text: '值' 
} 
},
               plotOptions: { 
                   column: { 
                       pointPadding: 0.2, 
                       borderWidth: 0 
                   } 
               }, 
               series: [{ 
                   name: '高', 
                  data: [110,7,4]   //如果在这里用 arr_obj,就不能画图,如果用data:ceshi
                                                      //就可以画图 
               }, { 
                   name: '低', 
                   data: [2,4,1]

               }] 
           }); 

            }

        }
});

展开
收起
小旋风柴进 2016-03-17 13:45:28 2175 分享 版权
1 条回答
写回答
取消 提交回答
  • 将你的ajax改为同步的,而且你的arr_obj是内部变量,外部访问不了,直接使用arr变量就行了

     var xmlhttp=new XMLHttpRequest();
    //ajax返回值
        var arr;
        xmlhttp.open("GET","ajaxuserbloodpressure.php?idaccount="+idaccount,false);///同步,不需要回调
            xmlhttp.send();
    arr=xmlhttp.responseText;
    arr=eval('('+arr+')')/////////
    $('#lineChart').highcharts({ ///.....
    series: [{ 
                       name: '高', 
                      data:arr////////////////////
                   }
    2019-07-17 19:05:15
    赞同 展开评论
问答分类:
问答标签:
问答地址: