Google Chart - перерисовать диаграмму при вызове AJAX - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть комбинированная диаграмма Google, которую я создаю на странице с вызовом AJAX для получения данных с другой страницы.

google.charts.load('current', {'packages':['corechart']});
// Set a callback to run when the Google Visualization API is loaded.
google.charts.setOnLoadCallback(drawChart);

function drawChart() {
  var jsonData = $.ajax({
      url: "generate_gp_graph.php",
      dataType: "json",
      async: false
      }).responseText;

  // Create our data table out of JSON data loaded from server.
 var data = new google.visualization.DataTable(jsonData);
 var options = {

  vAxis: {title: 'Value (€)'},
  hAxis: {title: 'Audit Date'},
  legend:{position: 'top', maxLines:2},
  seriesType: 'bars',
  series: {
      3: {type: 'line', targetAxisIndex:0},
      4: {type: 'line', targetAxisIndex:1}
      },
  vAxes: {
    1: {
      title:'Gross Profit %',
      textStyle: {color: 'green'}
    }
}};
  // Instantiate and draw our chart, passing in some options.
  var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
   chart.draw(data, options);
}

То, что я сейчас пытаюсь сделать, это обновить данные и перерисовать график при нажатии кнопки.Я попробовал следующее

$('#year_to_date').click(function(event){
    var page = 'generate_gp_graph.php';
    $.ajax({
        url : page,
        data : {'action' : 'year_to_date','store_id' : "<?php echo $store_id ?>"},
        type : 'post',
        success: function(result) {
            function drawChart() {
              var jsonData = $.ajax({
                  url: "generate_gp_graph.php",
                  dataType: "json",
                  async: false
                  }).responseText;

              // Create our data table out of JSON data loaded from server.
              var data = new google.visualization.DataTable(jsonData);
             var options = {

              vAxis: {title: 'Value (€)'},
              hAxis: {title: 'Audit Date'},
              legend:{position: 'top', maxLines:2},
              seriesType: 'bars',
              series: {
                  3: {type: 'line', targetAxisIndex:0},
                  4: {type: 'line', targetAxisIndex:1}
                  },
              vAxes: {
                1: {
                  title:'Gross Profit %',
                  textStyle: {color: 'green'}
                }
            }};
              // Instantiate and draw our chart, passing in some options.
              var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
               chart.draw(data, options);
        }},
        error: function() {}
    });
});

, и хотя функция работает правильно и возвращаются правильные данные, график не отображается снова с новыми деталями.Чего мне не хватает в успехе AJAX, чтобы перерисовать график?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...