2013-06-06 3 views
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 
      } 
     }); 
     } 
    }); 

}); 

ответ

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] 
    } 
]; 
+0

Я добавил, серия: результат, и теперь легенда график показывает, но бары и данные по-прежнему не будут отображаться. Спасибо за помощь до сих пор. – evann

+0

Nevermind Я изменил код в своем контроллере, который я тестировал, и теперь все данные появляются. Большое спасибо, я застрял на этом некоторое время! – evann

0

Вы должны добавить series вместо plotOptions в вашем диаграмма конфигурации.

Как это:

series: [{ 
    name: 'test', 
    data: result 
}] 
+0

Спасибо за помощь, но она сработала с ответом, приведенным выше. – evann

Смежные вопросы