我在html中使用chartjs库生成图表。我的HTML,jQuery和PHP都没关系,问题是,当我尝试用ajax调用推送用PHP生成的JSON并调用函数生成图形时 - 我有一个错误(JSON中的无效字符)。所以我的代码看起来像这样:
PHP:
$queryPortals = "SELECT description,count(*) AS count FROM portals WHERE ".$portals." AND id<900 GROUP BY description";
$resultPortals = mysqli_query($conn,$queryPortals);
while ($ar = mysqli_fetch_array($resultPortals)) {
$rows[] = "{category: '".$ar['description']."', value: ".$ar['count']."}";
}
echo json_encode($rows,JSON_NUMERIC_CHECK);
此代码返回此JSON:
[
"{category: 'Blog', value: 1}",
"{category: 'Portal', value: 1}"
]
我的ajax电话看起来像这样:
$.ajax({
type: 'GET',
dataType: 'json',
url: 'class/portalAnalysisGetGraphs.php',
data: 'portals='+portals,
success: function(html){
drawPie(html);
}
});
我的drawPie函数如下所示:
function drawPie(html)
{
$("#chartContainer").dxPieChart({
dataSource: html,
series: {
argumentField: 'category',
valueField: 'value',
label: {
visible: true,
connector: {
visible: true
}
}
},
tooltip: {
enabled: true,
percentPrecision: 2,
customizeText: function (value) {
return value.percentText;
}
},
title: {
text: 'Portal types'
},
legend: {
horizontalAlignment: 'center',
verticalAlignment: 'bottom'
}
});
};
解析JSON时出错。我试图在PHP中使用双引号构建JSON,我尝试了javascript functzion JSON_parse(html) - 没有运气。
当我将数据直接输入drawPie函数时,它就可以了。直接数据输入示例:
var html= [
{category: 'Blog', value: 1},
{category: 'Portals', value: 1}
];
请帮忙......