栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Highcharts数据系列问题与Ajax / json和PHP

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Highcharts数据系列问题与Ajax / json和PHP

解决了:

我找到了一个最终成功的答案!令人沮丧的是,我花了几天的时间,因为Highcharts并没有很好地对其进行记录(和/或也许我对jQuert和Javascript的理解仍处于新手水平)。

答案是 不要 在您的json对象中将X /
Y数据作为预制数组发送,而只是将构成Date(x值)和Value(y值)的数字作为逗号分隔值列表发送一个json对象,然后在客户端进行解析和推送。

例如: 我最初是想让我的PHP发送类似

[{"name":"Name 1","data":["[Date.UTC(2011,11,08), 4 ]","[Date.UTC(2011,11,09), 4 ]","[Date.UTC(2011,11,10), 4 ]","[Date.UTC(2011,11,11), 4 ]","[Date.UTC(2011,11,14), 3 ]"]}

但是我真正需要做的是发送类似

[{"name":"Name 1","data":["2011,11,08, 4","2011,11,09,4"....`

第一步是确保将“系列”选项设置为空数组

series: []

(我之所以这样提,是因为我看到了其他答案,但答案有所不同)。

然后,在getJSON函数中,需要为要引入的每个对象创建一个新对象,其中还包括一个空的“数据”数组(请参见下面的“ var系列”)。

然后嵌套一些

$.each
循环以解析并将数据推入其必要的数组,并填充每个对象的“名称”:

    $.getJSON('http://exmaple.com/getdata.php?ID=' + id, function(data) {        $.each(data, function(key,value) { var series = { data: []}; $.each(value, function(key,val) {     if (key == 'name') {         series.name = val;     }     else     {         $.each(val, function(key,val) {  var d = val.split(",");  var x = Date.UTC(d[0],d[1],d[2]);  series.data.push([x,d[3]]);         });     } }); options.series.push(series);        });

在上面的代码之后,您需要实例化图表:

var chart = new Highcharts.Chart(options);

就是这样!

希望其他人会发现这个答案有用,并且不需要几天来试图解决这个问题。:-)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404039.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号