无法从ajax返回的JSON加载图形(chartjs)

时间:2014-05-09 11:03:46

标签: javascript php ajax json chart.js

我在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}                                                     
];

请帮忙......

0 个答案:

没有答案