Error al cargar mas de 1 vez: google.charts.load() cannot be called more than once.

469 views
Skip to first unread message

Luis Javier Bautista Barahona

unread,
Feb 8, 2016, 6:56:17 PM2/8/16
to Google Visualization API
Trato de cargar una gráfica en un script que se carga al hacer submit desde otro archivo con javascript y jquery:

Script1.php
    <form class="form-inline" method="post" id="form-select-fecha">
      <div class="form-group">
        <label for="cbox_yy">A&ntilde;o:</label>
        <select class="form-control" id="cbox_yy" name="cbox_yy" required>
          <option value="2015">2015</option>
          <option value="2016">2016</option>          
        </select>
      </div>
      <button type="submit" class="btn btn-primary">Seleccionar</button>      
    </form>

    <div id="div-tienda-reporte-ventas-resultados"></div>

<script>
  $(document).ready(function() {
    $("#div-tienda-reporte-ventas-resultados").load('php/views/view_tienda_reporte_ventas_resultados.php');
    $("#form-select-fecha").submit(function(){
      var yy = $('#cbox_yy').val();
      $("#div-tienda-reporte-ventas-resultados").load('php/views/view_tienda_reporte_ventas_resultados.php',{year:yy});
      return false;
    });
  });
</script>

scrip2.php
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<?php  
if(isset($_POST['year'])){ 
  #Codigo PHP
  #...
  $datos=$obj_datos->obtenerYY($_POST['year']);
?>
<hr>
<div id="grafica" style="width: 900px; height: 500px"></div>
<?php } ?>

<script type="text/javascript">
      google.charts.load('current', {'packages':['corechart']});
      google.charts.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['TIT1', 'TIT2'],
          [<?php #CODIGO PHP PARA MOSTRAR DATOS ?>],
        ]);
        var options = {
          title: 'VENTAS POR MES',
          legend: { position: 'bottom' }
        };
        var chart = new google.visualization.BarChart(document.getElementById('grafica'));

        chart.draw(data, options);
      }
</script>


La primera vez muestra correctamente los datos, pero la segunda vez que le doy click al boton del script1.php no carga el script2 y me muestra en consola el error:  

Uncaught Error: google.charts.load() cannot be called more than once.

Entiendo que no puedo llamar por segunda vez load(), ¿existe alguna forma de que el evento no se vuelva a cargar o volver a recargar todo el contenido del script2.php  ????

De antemano gracias!

Surf Treinta

unread,
Feb 29, 2016, 7:11:32 AM2/29/16
to Google Visualization API
Con que pongas tan solo una vez google.charts.load('current', {'packages':['corechart']}); ya te debería funcionar. Ponlo al principio.
Reply all
Reply to author
Forward
0 new messages