Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过AJAX JSON向Chart.js提供数据不起作用?_Javascript_Ajax_Chart.js - Fatal编程技术网

Javascript 通过AJAX JSON向Chart.js提供数据不起作用?

Javascript 通过AJAX JSON向Chart.js提供数据不起作用?,javascript,ajax,chart.js,Javascript,Ajax,Chart.js,我正在构建一个仪表板,希望将数据库中的信息直接显示到Chart.js 我已经创建了Ajax,它返回正确的数据。我将其全部放在以下代码中: $.ajax({ type: 'GET', url: "http://localhost/cwwa/web/app.php/AJAX/dashboard/", contentType: "application/json", success: function(json) { var ChartData = j

我正在构建一个仪表板,希望将数据库中的信息直接显示到Chart.js

我已经创建了Ajax,它返回正确的数据。我将其全部放在以下代码中:

$.ajax({
    type: 'GET',
    url: "http://localhost/cwwa/web/app.php/AJAX/dashboard/",
    contentType: "application/json",
    success: function(json) {

        var ChartData = json.enviFig;

        var oacData = [
            $.each(ChartData, function(i, item) {
                {
                    value: ChartData[i].totalTonne;
                    color: "#F7464A";
                    highlight: "#FF5A5E";
                    label: ChartData[i].wasteType;
                }
            })
        ];

        var rCM = document.getElementById("recycledChartMain").getContext("2d");

        var recycledChartMain = new Chart(rCM).Pie(oacData);

    }

});
但是,加载页面时,图形不会出现。Firebug也没有错误,只有与Chart.js文件相关的警告:

画布:尝试将strokeStyle或fillStyle设置为 字符串、画布渐变或画布图案均未被忽略


出什么问题了?

您填充oacData的方式听起来不正确。我希望:

var oacData = [];
$.each(ChartData, function(i, item) {
    oacData.push(
        {
            value: ChartData[i].totalTonne,
            color: "#F7464A",
            highlight: "#FF5A5E",
            label: ChartData[i].wasteType
        }
    );
});

现在oacData是数组中的数组中的对象。 这就是Chart.js无法解析数据的原因。 只需省略以下括号:

var oacData = $.each(ChartData, function(i, item) {
                {
                    value: ChartData[i].totalTonne;
                    color: "#F7464A";
                    highlight: "#FF5A5E";
                    label: ChartData[i].wasteType;
                }
            });

您将拥有一个包含对象的数组。

它抛出了一个错误,说它在
wasteType之后缺少一个
}
但更改
删除此错误,使其现在运行时不会出错。但是图表没有显示?代码已更正,在对象内部应使用逗号,而不是分号。