Avatar billede steen-h Mester
17. februar 2013 - 11:28 Der er 2 kommentarer og
1 løsning

google chart reload

Jeg har et google chart søjlediagram hvor jeg skal kunne rette i data.
Jeg har lavet noget ajax så jeg kan rette data i min mysql database.
Jeg kan opdatere data til diagrammet som indsættes med en json_encode

men hvordan reloader jeg diagrammet uden at loade hele siden ?
hvordan indsætter jeg de nye data i drawChart() og kalder den igen ?
jeg indsætter dem nu med php

<script type="text/javascript">


   
    // Load the Visualization API and the ColumnChart package.
    google.load('visualization', '1', {'packages':['corechart']});

    // Set a callback to run when the Google Visualization API is loaded.
    google.setOnLoadCallback(drawChart);



    function drawChart() {

      // Create our data table out of JSON data loaded from server.
      var data = new google.visualization.DataTable(<?=$jsonTable?>);

      var options = {
          title: '<?echo $title?>',
          is3D: 'true',
          width: 1200,
          height: 600
        };

      // Instantiate and draw our chart, passing in some options.
      //do not forget to check ur div ID
      var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
      chart.draw(data, options);

    } 

</script>
Avatar billede steen-h Mester
17. februar 2013 - 15:39 #1
Så har jeg løst problemet.

jeg har lavet en fil data.php som udskriver mit json_encode array

så har jeg en java script function som læser data.php

function makeAjaxCall() {
      $.ajax({url:'./php/data.php',
              data: {},
              success: function(responseData) {
                        // eval just for testing - make safer
                        var arrayForGviz = eval("(" + responseData + ")");
                        drawChart(arrayForGviz);

                      }
        });

    }

den kalder så min drawChart med de nye data.
Avatar billede olebole Juniormester
17. februar 2013 - 16:37 #2
<ole>

Brug aldrig eval! Den udgør en seriøs sikkerhedsbrist. Brug i stedet:

var arrayForGviz = JSON.parse(responseData);

/mvh
</bole>
Avatar billede steen-h Mester
17. februar 2013 - 16:46 #3
OK

Tak for det, er rettet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I går 23:37 Poe strøm Af lurup i LAN/WAN
I går 14:46 GIF-EDITOR Af snestrup2000 i Billedbehandling
I går 14:03 Logge ind Af Bob i PC
I går 12:12 2 skærme - 1 virker - den anden siger No signal Af eksmojo i Skærme
I går 10:33 openvpn projekt Af dcedata1977 i Windows