2015-02-04 25 views
0

我正在努力從PHP獲取數據到圖形中。我在1個PHP頁面上有以下幾段代碼。首先,簡單部分:AddRows接收PHP數組

$sql = "SELECT * FROM (SELECT timestamp, CurrentKelvin, TargetKelvin, WeatherTempKelvin FROM `rawdata` ORDER BY `rawdata`.`timestamp` DESC LIMIT 10) AS ttbl ORDER BY `timestamp` ASC;"; 
$results = mysqli_query($con,$sql); 
$ChartData = array(); 
    foreach($results as $result) 
    { 
     $ChartData[] = array((int)$result['CurrentKelvin'],(int)$result['TargetKelvin']); 
    } 
    $ChartData = json_encode($ChartData); 

然後JavaScript部分:

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript"> 
    google.load('visualization', '1.0', {'packages':['corechart']}); 
    google.setOnLoadCallback(drawChart); 
    function drawChart() { 
     var data = new google.visualization.DataTable(); 
     data.addColumn('number', 'CurrentKelvin'); 
     data.addColumn('number', 'TargetKelvin'); 
     alert(<?php echo json_encode($ChartData); ?>); 

     data.addRows(<?php echo json_encode($ChartData); ?>); 
     var chart = new google.visualization.LineChart(document.getElementById('chart_div')); 
     chart.draw(data); 
    } 
</script> 

<!--Div that will hold the pie chart--> 
<div id="chart_div"></div> 

當我運行的警報命令以上示出了下面的輸出:

[[292,290],[292,290],[291,290],[291,290],[291,290],[291,290],[291,290],[291,290],[291,290],[291,290]] 

但data.addRows線生成以下錯誤: 錯誤:給addRows的參數必須是數字或數組

改變data.addRows簡單的東西(和改變data.addColumn串,用相同的陣列結構,我得到一個圖表:

data.addRows([ 
    ['Ivan', 5], 
    ['Igor', 7], 
    ['Felix', 8], 
    ['Bob', 4] 
]); 

我只是想不出什麼錯誤。任何幫助表示讚賞。由迪內希給出

+0

如果你data.addRows方法需要數組作爲參數..你將不得不要麼送$ charData,因爲它是沒有編碼,即,..或將其轉換在javascript數組格式。 – Dinesh

+1

試試這個 - var json_arr = <?php echo json_encode($ ChartData); ?>; data.addRows(JSON.parse(json_arr))) – Dinesh

+0

YES!謝謝Dinesh,那工作。 – Gabrie

回答

0

回答工作:

 var json_arr = <?php echo json_encode($ChartData); ?>; 
     data.addRows(JSON.parse(json_arr));