Chart.js没有显示数据

时间:2016-12-10 14:31:55

标签: javascript chart.js

我的图表未显示完整数据。在底部是多个名称,但它表示“未定义”,在侧面它从-1.0开始然后上升到1.0。我可以在我的控制台中获取item_name和剩余部分,它已完成,它只是没有显示在我的图表中。 以下是我的代码:

MODEL

public function get_charts(){
                $str="select
                    I.item_name,
                    I.stocked,
                    ifnull(dispensed,0) as dispensed,
                    COALESCE (I.Stocked, 0) - COALESCE (S.dispensed, 0) AS remaining
                    FROM
                        (
                            SELECT
                                item_name AS 'item_name',
                                SUM(amount) AS 'stocked'
                            FROM
                                com_inv
                            GROUP BY
                                item_name
                        ) I
                    LEFT JOIN (
                        SELECT
                            item_name,
                            order_status,
                            SUM(amount) AS dispensed
                        FROM
                            sls_ordrs
                        WHERE
                            order_status = 'received'
                        GROUP BY
                            item_name
                    ) S ON I.item_name = S.item_name;";

                    $query=$this->db->query($str);

                    return $query->result();
                }

CONTROLLER

public function get_charts(){
        $result=$this->commissary_model->get_charts();
        print json_encode($result);
    }

查看

var urlCharts="<?php echo site_url('commissary/get_charts');
                    ?>";
        $.ajax({
            url:urlCharts,
            method:"GET",
            success:function(data){
                console.log(data);
                var item=[];
                var remaining=[];

                for(var i in data){
                    item.push(data[i].item_name);
                    remaining.push(data[i].remaining);
                }

                var chartdata={
                    labels: item,
                    datasets:[
                        {
                            label:'Remaining Items',
                            backgroundcolor:'rgba(200,200,200,0.75)',
                            borderColor:'rgba(200,200,200,0.75)',
                            hoverBackgroundColor:'rgba(200,200,200,1)',
                            hoverBorderColor:'rgba(200,200,200,1)',
                            data:remaining
                        }
                    ]
                };

                var ctx=$("#mycanvas");
                var barGraph = new Chart(ctx, {
                    type: 'bar',
                    data: chartdata
                });
            },
            error:function(data){
                console.log("data");
            }
        });

CONSOLE.LOG的样本

[{"item_name":"aaa","stocked":"23456","dispensed":"0","remaining":"23456"},{"item_name":"accumsan Curae","stocked":"889.74","dispensed":"123.5","remaining":"766.24"},{"item_name":"ad bibendum Donec","stocked":"659.12","dispensed":"0","remaining":"659.12"},{"item_name":"Aenean cursus","stocked":"169.63","dispensed":"0","remaining":"169.63"},{"item_name":"Aenean magna","stocked":"272.11","dispensed":"0","remaining":"272.11"}, ....etc...

你能告诉我我哪弄错了吗?谢谢。

1 个答案:

答案 0 :(得分:0)

for循环看起来不正确

for(var i = 0; i < data.length; i++) {
    item.push(data[i].item_name);
    remaining.push(data[i].remaining);
}