<?php
while($row = mysql_fetch_assoc($sql))
{
$dataset1[] = array($row['dateReport'],$row['totalUniqueView']);
}
echo json_encode($dataset1);
?>
$(document).ready(function () {
//Graph scripts here.
var graphData = <?php echo json_encode($dataset1); ?>;
大家好,我需要帮助。我设法遵循这里的教程:http://designmodo.com/create-interactive-graph-css3-jquery/
它完美无缺。我试图修改它,以便它可以从我的数据库中读取数据。从上面的代码中可以看出,我已经更改并添加一些php行并修改脚本。但是,它不起作用,它会向我的图表返回奇怪的数据。请帮忙。
答案 0 :(得分:3)
好的,那里的数据存在一些问题。
首先,日期/时间必须以JavaScript时间戳的形式提供;摘自the docs:
Flot中的时间序列支持基于Javascript时间戳, 即,在预期或移交时间值的任何地方,Javascript 使用时间戳号。这是一个数字,而不是Date对象。一个 Javascript时间戳是自1月1日以来的毫秒数, 1970 00:00:00 UTC。这与Unix时间戳几乎相同,除了 它是以毫秒为单位,所以请记住乘以1000!
其次,您的数据用引号括起来,这意味着它将作为字符串而不是数字传递 - 这将停止Flot能够正确绘制数据。来自the FAQ:
当我使用JSON数据作为源时,Flot不起作用!
实际上,Flot喜欢JSON数据,你只是格式错误。双 检查你没有输入字符串而不是数字,比如 [[“0”,“ - 2.13”],[“5”,“4.3”]]。这是最常见的错误,而且 错误可能不会立即显示,因为Javascript可以做一些 自动转换。
您应该能够通过生成以下数据来解决这两个问题:
while($row = mysql_fetch_assoc($sql))
{
$dataset1[] = array(strtotime($row['dateReport']) * 1000, (int)$row['totalUniqueView']);
}