【发布时间】:2010-12-08 10:26:12
【问题描述】:
我发现了 jquery 的 flot 来绘制漂亮的图表。但我无法解析我想从 MYSQL 表示的数据。这让我发疯,因为我收到了这个错误:
uncaught exception: Invalid dimensions for plot, width = 0, height = 0
除此之外还有什么办法可以将MYSQL数据放入flot?:
php部分:
<?php
include './includes/config.php';
include './includes/opendb.php';
$ID=$_GET["ID"];
$data=$_GET["data"];
$query_set = "SET @cnt = -1";
$query = "SELECT @cnt +1, {$data} FROM table_inf where ID = {$ID};";
$result = mysql_query("{$query_set}");
if (!$result) {
die("Query to show fields from table failed");
}
$result = mysql_query("{$query_select}");
if (!$result) {
die("Query to show fields from table failed");
}
$arr = array();
while($obj = mysql_fetch_object($result))
{
$arr[] = $obj;
}
//NOW OUTPUT THE DATA:
print json_encode($arr);
mysql_free_result($result);
include './includes/closedb.php';
?>
javascript部分:
<script type="text/javascript">
function get_data() {
var options = {
lines: {show: true},
points: {show: true},
yaxis: { min: 0 },
};
$.ajax({ url: "return_values.php?ID=1&data=MAG",
dataType: "json",
success: function(result)
{
plot = $.plot($("#placeholder"), result, options);
}
});
};
</script>
我一直在谷歌搜索......没有成功。看起来很简单,但情节根本无法理解数据......或其他东西......
php文件的输出如下(以两个条目为例):
[{"@cnt := @cnt + 1":"0","MAG":"6.87"},{"@cnt := @cnt + 1":"1","MAG":"11.44"}]
其中@cnt 是每行 (0,1,2,3...) x 轴递增的计数器,MAG 是要在 y 轴上显示的数据本身。
我使用的 jquery 是:
<script src="./javascripting/jquery-1.3.2.js" type="text/javascript"></script>
<script src="./javascripting/jquery.tabs.pack.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript" src="./javascripting/jquery.flot.js"></script>
flot 是 0.5 版和浏览器 firefox。
【问题讨论】:
-
您可能希望发布一些 PHP 脚本的输出,以便人们可以看到 JSON 编码的数据是什么样的。
-
是的,你是对的,只是编辑了它。谢谢
-
您可能想要添加您正在使用的 jQuery 插件。可能是 flot 插件,但不能仅从您的代码中分辨出来。
-
Flot 插件。刚刚将 javascript 源添加到帖子中。谢谢
标签: javascript jquery mysql plot