0

我的控制器中的 ajax 函数正确地点击页面,图表加载但它是空白的,我无法让数据到达图表。我的代码如下。使用高图表。谢谢!

控制器:

public function ajax_get_chart() {
      $series_data[] = array('series' => array(array('name' => 'John', 'data' => array(5, 7, 4))));
      $series_data[] = array('series' => array(array('name' => 'Tony', 'data' => array(5, 7, 4))));
      die (json_encode($series_data)); 

    }

Javascript:

var chart;

$(document).ready(function() {

    $.ajax({
      url: "/chart/ajax_get_chart", // the URL of the controller action method
      dataType: "json",
      success: function(result) 
      {

        chart = new Highcharts.Chart({
            chart: {
                renderTo: 'container',
                defaultSeriesType: 'bar'
            },
            title: {
                text: 'Stacked bar chart'
            },
            xAxis: {
                categories: ['Apples', 'Oranges', 'Pears', 'Grapes', 'Bananas']
            },
            yAxis: {
                min: 0,
                title: {
                    text: 'Total fruit consumption'
                }
            },

            legend: {
                backgroundColor: '#FFFFFF',
                reversed: true
            },
            tooltip: {
                formatter: function() {
                    return ''+
                        this.series.name +': '+ this.y +'';
                }
            },
            plotOptions: {
                series: result
            }
        });
      }
    });

});
4

2 回答 2

0

您必须在图表配置中添加series而不是。plotOptions

像这样:

series: [{
    name: 'test',
    data: result
}]
于 2013-06-06T17:00:41.187 回答
0

将您的数据传递给 plotOptions.series 不会做任何事情。

您的结果应该进入“系列”,例如:

chart = new Highcharts.Chart({
            chart: {},
            title: {},
            xAxis: {},
            yAxis: {},
            legend: {},
            tooltip: {},
            plotOptions: {},
            series: result
        });

前提是您的“结果”格式类似于:

result = [{
        name: "One",
        data: [1, 2, 3, 4]
    }, {
        name: "Two",
        data: [1, 2, 3, 4]
    }
];
于 2013-06-06T15:55:47.863 回答