这个和(几乎)绝望的新手。我想做的是以下几点:
所以我坚持使用看起来不错的高级图表,因为一切都发生在客户端(数据解析除外)。
现在我还不知道如何创建给予高图的数组。它应该看起来像这样( create-graph.html 的内容)
<!DOCTYPE html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
<script type="text/javascript">
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
type: 'spline'
},
series: [{}]
};
$.getJSON('data.php', function(data) {
options.series[0].data = temp;
var chart = new Highcharts.Chart(options);
});
});
</script>
从sql-server解析数据与 data.php (内容如下所示),应该在通话时生成数据吧?
<php>
$dbc = mysqli_connect("localhost", "pi", "pi", "boxklima");
$query = "SELECT date,temp FROM 0414604605ff";
$data = mysqli_query($dbc, $query);
$i=0;
while($row = mysqli_fetch_array($data)) {
$rows[$i]=array($row['date'],$row['temp']);
$i++;
}
echo json_encode($rows);
</php>
打开(在浏览器中)data.php只显示
$dbc = mysqli_connect("localhost", "pi", "pi", "boxklima"); $query = "SELECT date,temp FROM 0414604605ff"; $data = mysqli_query($dbc, $query); $i=0; while($row = mysqli_fetch_array($data)) { $rows[$i]=array($row['date'],$row['temp']); $i++; } echo json_encode($rows);
在空白屏幕中打开create-graph.html结果。 凭据设置为755,php文件的执行位设置为。文件位于同一目录中。
帮助表示感谢,提前谢谢你,我迷失了信息并且确实感到困惑。 仔细阅读其他主题,但由于我是新手,所以它只给我一些我无法匹配的小块。 :S 更多信息:
lighttpd/1.4.31
PHP Version 5.4.36-0+deb7u1
additional config files parsed
/etc/php5/cgi/conf.d/10-pdo.ini, /etc/php5/cgi/conf.d/20-gd.ini,
/etc/php5/cgi/conf.d/20-mcrypt.ini, /etc/php5/cgi/conf.d/20-mysql.ini,
/etc/php5/cgi/conf.d/20-mysqli.ini, /etc/php5/cgi/conf.d/20-pdo_mysql.ini
json support enabled
json version 1.2.1
mysql Client API version 5.5.40
答案 0 :(得分:0)
将您的php文件更改为:
<?php
$dbc = mysqli_connect("localhost", "pi", "pi", "boxklima");
$query = "SELECT date,temp FROM 0414604605ff";
$data = mysqli_query($dbc, $query);
$i=0;
while($row = mysqli_fetch_array($data)) {
$rows[$i]=array($row['date'],$row['temp']);
$i++;
}
echo json_encode($rows);
?>
在create-graph.html中,'temp'变量未定义。(您可以打开JavaScript控制台并检查JavaScript错误)这就是该页面为空白的原因。
查看你的data.php文件,我认为$ .getJSON的回调函数中的'data'变量将具有如下结构:
[
[2014-01-01 09:00:00, 12.43]
[2014-01-02 09:00:00, 13.57]
]
基本上是阵列数组。 因此,将功能更改为此可能会有所帮助:
$.getJSON('data.php', function(data) {
dataTemp = [];
for(i=0;i<data.length;i++){
dataTemp.push(data[i][1]); // '1' index for getting that temp value. '0' for date.
}
options.series[0].data = dataTemp;
var chart = new Highcharts.Chart(options);
});
另外请在网页浏览器中打开data.php的内容 在进行更改后打开create-graph.html时,还要提及JavaScript控制台错误(如果有)。
答案 1 :(得分:0)
您需要将字符串日期转换为时间戳并设置xAxis的日期时间类型。要获得帮助,请参阅strtotime function并申请加入PHP脚本。