在Flot图上显示数据库中的值(使用mySQL)

时间:2011-07-21 12:44:13

标签: php javascript jquery mysql flot

我正在尝试使用php(mySQL)读取数据库中的值,然后将它们显示在flot中的图形上。我知道这些值是正确读取的,我没有收到任何错误,但图表不会显示。 帮助不大?

提前致谢。

<?php
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    $graphdata[] =  array( (int)$row[0], (int)$row[1] );
}
?>
/////

<div id="placeholder" style="width:600px;height:300px"></div>

<script language="javascript" type="text/javascript">

var dataset1 = <?php echo json_encode($graphdata);?>;
var data = [
            {
                label: "Random Values",
                data: dataset1
            }
        ];
var plotarea = $("#placeholder");

        $.plot( plotarea , data);
</script>

2 个答案:

答案 0 :(得分:1)

您的pastebin内容显示您输出的JSON字符串是无效的JSON。

var data = [{ label: "Random Values",data: dataset1}];

将验证它是否已更改为:

var data = [{"label": "Random Values","data": "dataset1"}]

这只是一个例子,但我怀疑Flot正在寻找一种稍微不同的格式,所以你必须根据他们的文档确切地确定他们正在寻找什么。我现在正在使用FusionCharts进行同样的练习,所以我感觉到你的痛苦。 jsonlint.com是您的朋友,输出您的JSON并经常验证它。我还建议最初让它工作,从你在代码中放置的一串JSON(甚至是你从他们的例子中复制的那个)开始。首先使图表工作,然后让PHP分别复制示例JSON字符串。

答案 1 :(得分:0)

尝试延迟创建图表,直到加载DOM:

jQuery(document).ready(function ($){
    var plotarea = $("#placeholder");
    $.plot( plotarea , data);
});