来自PHP的flot piechart

时间:2013-08-23 18:15:06

标签: php jquery mysql ajax flot

我有一个非常奇怪的问题,就是在Flot中用PHP数据创建一个饼图。

似乎绘图不正确,我无法弄清楚原因。

我的PHP代码(用于测试)是:

echo json_encode(
'[{ label: "Series1",  data: 10},
{ label: "Series2",  data: 3},
{ label: "Series3",  data: 9},
{ label: "Series4",  data: 7},
{ label: "Series5",  data: 8},
{ label: "Series6",  data: 17}]'
);

我的JS文件是:

$.ajax({
type:'GET',
dataType:"json",
url:'../phpfile.php',
success: function(data) {
    console.log(data);
    $.plot($("#piechart"),data,{
        series: {
            pie: {
                show: true
            }
        }
    });
}
});

consol日志显示:

[{ label: "Series1",  data: 10},
{ label: "Series2",  data: 3},
{ label: "Series3",  data: 9},
{ label: "Series4",  data: 7},
{ label: "Series5",  data: 8},
{ label: "Series6",  data: 17}]

我认为这是flot的正确格式......

但它的图形如下: piechart

有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

我相信您的JSON目前无效,目前,您正在尝试将JSON字符串解析为JSON字符串(如果您理解我的意思!)目前,当我从PHP结束时回显你的echo'ed json_encode(),我提供了:

"[{ label: \"Series1\", data: 10},\r\n{ label: \"Series2\"]"

此外,我会使用PHP Arrays来编码JSON,如下所示:

<?php 
    $arr = array( 
        array(
            "label" => "Series1",
            "data" => 10
        ),
        array(
            "label" => "Series2",
            "data" => 3
        ),
        array(
            "label" => "Series3",
            "data" => 9
        ),
        array(
            "label" => "Series4",
            "data" => 7
        ),
        array(
            "label" => "Series5",
            "data" => 8
        ),
        array(
            "label" => "Series7",
            "data" => 17
        )
    );

    echo json_encode( $arr );
?>

PHP json_encode() 接受混合变量类型,但它最常用于PHP数组。

通过上述内容,我能够成功构建PIE图表:

Finished Chart