2016-08-25 48 views
4

我生成的阵列,像这样在使用JSON嵌套阵列中chartData下PHP:如何将数组中的json插入到highchart中?

array:1 [▼ 
    0 => array:18 [▼ 
    "id" => 1 
    "chart_title" => "A title" 
    "chart_type" => "line" 
    "chartData" => "[[1470406561000,2116],[1470406561000,2116],[1470406562000,2116]]" 
    ] 
] 

我想这个数组中访问chartData JSON,并将其插入一个HighCharts系列。

我已经尝试使用: window['chart' + chartData.id].series[0].addPoint(chartData, true, shift);

,也是一个forEach循环:

chartData.forEach(function(dataPoint){ 
         console.log(dataPoint); 
         window['chart' + chartData.id].series[0].addPoint(dataPoint[0], true); 
         dataPoint.slice(0,30).forEach(function(point){ 
          window['chart' + chartData.id].series[0].addPoint(point, true, shift); 
         }); 
        }); 

两个不显示在控制台中的任何错误和值不会在图表上显示。如果我我console.log(dataPoint);得到什么样子正确的输出: [[1470406561000,2116],[1470406561000,2116],[1470406562000,2116]]

我怎么会插入chartData JSON成highchart系列?

回答

1

我的问题是JSON在视图上没有被jQuery解析,而是基本上将它传递给了highcharts系列的raw。通过添加jQuery.parseJSON(chartData);它能够正确解析并显示在图表上。

0

使用jQuery你可以尝试这样的:

var dataPoint = [[1470406561000,2116], 
         [1470406561000,2116], 
         [1470406562000,2116]]; 

    var chart = $('#chart2').highcharts(); 
    chart.series[0].setData(dataPoint); 

    $('#chart2').highcharts().redraw(); 

请确保您更改图表ID即#chart2正确地按照你的代码。

+0

谢谢@vijayP我试过这个工程没有任何问题,如果我在jquery中设置dataPoint var,但如果我尝试使用像var'dataPoint = chartData这样的数组设置它;'它像这样绘制图表http:// oi68.tinypic.com/29djria.jpg – kevinabraham

+0

您发布的图片截至目前无法访问。你可以'console.log(chartData)'在语句'dataPoint = chartData;'之前检查它。 – vijayP

+0

我console.logged数据和输出是'[[1470406561000,2116],[1470406561000,2116],[1470406562000,2116]]' – kevinabraham