2016-08-25 46 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

相關問題