我有一个非常奇怪的问题,就是在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的正确格式......
但它的图形如下:
有没有人有任何想法?
答案 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图表: