1

对此有什么帮助吗?问题是我无法获取饼图中的数据。有任何想法吗?我试图在饼图视图之外回显它,数据在 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
});

};

});

然后在模型中

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

return $results->result_array();

控制器中

public function index()
{   


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


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

1 回答 1

1

在 requestData() 函数中,在设置数据之前,以这种方式预处理“数据”:

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);
于 2013-04-24T10:11:12.173 回答