Codeigniter中的HighChart Pie动态JSON

时间:2013-04-24 08:24:48

标签: ajax json codeigniter highcharts pie-chart

对此有何帮助?问题是我无法获得饼图中的数据。有任何想法吗?我试图在饼图视图之外回显它,并且数据在JSON中显示为[{“Terminal”:“13”}]。 Hightchart需要数据为[“Sample”,2]?关于如何转换它的任何建议先生?谢谢。

继承我的代码:

查看

$(document).ready(function () {

$(function () {
    var chart;

    // Build the chart
    $('.widget-lower-left#widget').highcharts({
        chart: {
            plotBackgroundColor: null,
            plotBorderWidth: null,
            plotShadow: false
        },
        title: {
            text: 'Availability'
        },
        tooltip: {
            pointFormat: '{series.name}: <b>{point.percentage}%</b>',
            percentageDecimals: 1
        },
        plotOptions: {
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                dataLabels: {
                    enabled: false
                },
                showInLegend: true
            }
        },
        series: [{
            type: 'pie',
            name: 'Availability',
            data: []
        }]

});

});


function requestData() {
$.ajax({
    url: 'home',
    datatype: "json",
    success: function(data) {

        alert(data);
        console.log(data);

      chart.series[0].setData(data);

    },
    cache: false
});

};

});

然后在 MODEL

$results = $this->db->query("SELECT COUNT(get_jeeps_availability) as Terminal FROM get_jeeps WHERE get_jeeps_availability = 'Terminal'");

return $results->result_array();
CONTROLLER

中的

public function index()
{   


    $data['pie'] = json_encode($this->get_model->dashboard_jeep_widget());


    $this->load->view('home',$data);
}

1 个答案:

答案 0 :(得分:1)

在requestData()函数中,在设置数据之前,以这样的方式预处理'data':

var newData = [];
for( var i = 0, len = data.length; i < len; i++ ) {
    var item = data[i];
    for(var j in item){
        newData.push([j,item[j]]);
    }
}
chart.series[0].setData(newData);