我的PHP工作正常,我似乎正在为FLOT找回正确的JSON数据,但我仍然得到一张空白图表: - /
这是PHP:
foreach($result as $row) { //or whatever
$dataset1[] = array((int) $row['INDX'], (int) $row['RUNTIME'] );
}
echo json_encode($dataset1);
以下是它返回的JSON示例: [[31,2303],[113,5697],[201,4485],[151,4404],[192,2668],[84,1082],[13,6003],[68,3628],[ 12,2115]
这是绘制函数:
$(function () {
$.plot($("#dashboard_div"), apudata);
console.log(apudata);
});
控制台日志显示正确格式化的JSON,如上所示。我可以从控制台日志剪切和粘贴到该函数的文字变量,它可以工作,但将JSON作为变量传递不会。
想法?帮助?
答案 0 :(得分:0)
尝试使用以下代码。设置1000(ms)间隔,但通常需要更新图形。这是我之前在评论中发布的一篇文章的简单(非常轻微编辑)代码。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>AJAX FLOT</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript" type="text/javascript" src="../../jquery.js"></script>
<script language="javascript" type="text/javascript" src="../../jquery.flot.js"></script>
<script language="javascript" type="text/javascript" src="../../jquery.flot.time.js"></script>
</head>
<body>
<div id="placeholder" style="width: 100%;height: 600px;"></div>
<div id="div" style="width: 100%; height: 100px;"></div>
<script type="text/javascript">
var options = {
lines: {
show: true
},
points: {
show: true
},
xaxis: {
mode: "time"
}
};
window.setInterval(function(){
$.getJSON('http://localhost/data.php', function (csv) {
dataOne = csv;
var plot = $.plot($('#placeholder'), [dataOne], options);
});
}, 1000);
</script>
</html>
答案 1 :(得分:0)
不确定它是否重要,但是flot文档说只是将选择器作为字符串传递给$.plot()
,而不是jQuery对象。而不是
$.plot($('#dashboard_div'), apudata);
试
$.plot('#dashboard_div', apudata);