PHP和MySQL,获取JSON数据以提供HighCharts

时间:2014-03-27 15:48:29

标签: php mysql highcharts

我需要使用PHP和MySQL使用Highcharts构建图表。

data.php,我得到:

0: {categoria:Vendas, real:2038.00, orcamento:14000.00, desvio:-11962.00}
1: {categoria:Serviços, real:120.00, orcamento:8500.00, desvio:-8380.00}
2: {categoria:Outras, real:15000.00, orcamento:0.00, desvio:15000.00}

但是,为了构建图表,数据必须采用以下格式:

xAxis: {
    categories: ['Vendas', 'Serviços', 'Outras']

},

series: [{
    name: 'orcamento',
    data: [14000, 8500, 0]
}, {
    name: 'real',
    data: [2038, 15000, 120]
}, {
    name: 'desvio',
    data: [-11962, -8380,15000]
}]

我正试图以正确的格式转换数据并渲染图表:

$(document).ready(function(){
    var options={
        chart: {
            renderTo:'container',
            type: 'bar'
        },
        title: {
            text: 'Total Anual'
        }
    };

    $.getJSON('data.php', function (data){
        $.each(data, function(key,value) {
            var series = [{}];
            var xAxis = [{}];

            if(key=='categoria'){
                options.xAxis.categories.push(value);
            }
            else{
                options.series.name.push(key);
                $.each(value, function(key,value){
                    //series.data=value;
                    options.series.data.push(value) 
                })
            }
        });
        //options.series[0].data=data;
        var chart= new Highcharts.Chart(options);
    });
});

问题是此代码返回错误:" Uncaught TypeError:无法读取属性' name'未定义"在线:

options.series.name.push(key);

1 个答案:

答案 0 :(得分:0)

在选项中:

var options={
    chart: {
        renderTo:'container',
        type: 'bar'
    },
    title: {
        text: 'Total Anual'
    }
};

您缺少该对象的属性。例如:xAxis,series,series.data,series.names。