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]
]);
我只是想不出什麼錯誤。任何幫助表示讚賞。由迪內希給出
如果你data.addRows方法需要數組作爲參數..你將不得不要麼送$ charData,因爲它是沒有編碼,即,..或將其轉換在javascript數組格式。 – Dinesh
試試這個 - var json_arr = <?php echo json_encode($ ChartData); ?>; data.addRows(JSON.parse(json_arr))) – Dinesh
YES!謝謝Dinesh,那工作。 – Gabrie