用PHP实现Flot饼图

用PHP实现Flot饼图,php,jquery,json,flot,Php,Jquery,Json,Flot,我尝试使用Flot图表和PHP/MySQL动态添加一个饼图 这是我的javascript代码 <script id="source" language="javascript" type="text/javascript"> function fetchData() { $.ajax({ url: "test.php", method: "GET", dataType: "json", success:

我尝试使用Flot图表和PHP/MySQL动态添加一个饼图

这是我的javascript代码

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


  function fetchData() {
   $.ajax({
      url:      "test.php",
      method:   "GET",
      dataType: "json",
      success:  function(series) {
         var data = [  series ];
         $.plot($("#graph1"), data, {
            pie: { 
                show: true,
                showLabel: true
            },
            legend: {
                show: false 
            }
        });
      }
   });

   setTimeout(fetchData, 1000);
}


$(function () {
    $("#btn").click(function(){
    fetchData();                       
  });   

});
单击按钮时,会出现以下错误:

An invalid or illegal string was specified" code: "12
[Break On This Error] false 
甚至饼图也没有加载。谁能告诉我我哪里做错了

当我签入firebug时,数组显示如下

[{"item":"Final 2010","COUNT(target)":"2"},{"item":"Semi Final 2009","COUNT(target)":"3"}]
但当我打印它时,它显示为[Object Object][Object Object],我想这就是问题所在,任何人都知道如何修复它


谢谢

我认为您需要评估该数据系列

var data    = eval("(" + series + ")");
我想这应该可以

编辑


在jsiddle上添加了一个简单的复制:

No,我的意思是您将获得一个JSON数组的字符串表示。添加该行而不是var数据。。。线路应该能解决你的问题。你试过了吗?@JohnP:Yest我试过了,但它不起作用,当我检查firebug时,它在元素列表[对象对象],[对象对象]后给出-missing],[object object您返回的JSON没有问题。当您评估它时,它会正确显示:。您可以粘贴当前使用的代码吗?并且您已经完全替换了var data=[series];with var data=eval+series+;?@JohnP:这是我当前的代码-您还没有用我的代码替换它。您需要替换var data=[series]使用var data=eval+series+;。请尝试您的json字符串是否完美,我在jslint.com上检查过,您应该使用json_decode.。这可能会有所帮助。.顺便说一句,您希望显示/检索哪些内容,并且在mysql查询中使用别名作为COUNTtarget,例如选择项,COUNTtarget作为计数器中的totalTarget,其中type='video'和date介于'2011-02-2'之间1'和'2011-02-26'按id按目标订单分组ASC@diEcho我想在我的应用程序中显示一组页面的访问者百分比。感谢别名,我将添加它。我也将尝试使用json_解码
An invalid or illegal string was specified" code: "12
[Break On This Error] false 
[{"item":"Final 2010","COUNT(target)":"2"},{"item":"Semi Final 2009","COUNT(target)":"3"}]
var data    = eval("(" + series + ")");