2009-11-12 18 views
10

Ho un grafico di Google (utilizzando lo Google Visualization API, non Google Charts API) che viene caricato al caricamento della pagina. Dopo di che, l'utente può selezionare le opzioni da più menu a discesa. Vorrei che l'utente fosse in grado di aggiornare il grafico di Google in base alle sue selezioni.Aggiornamento dinamico di Google Chart con PHP e JavaScript

Ho già creato il codice PHP per acquisire i nuovi dati tramite MySQL, dopo che l'utente ha selezionato le varie opzioni.

Domanda: Devo sostituire il grafico corrente? o dovrei creare una funzione JavaScript per aggiornare il grafico?

Ecco la mia Google Grafico codice JavaScript:

google.load("visualization", "1", {packages:["columnchart"]}); 
google.setOnLoadCallback(drawChart); 

function drawChart() { 
    var data = new google.visualization.DataTable(); 
    data.addColumn('string', 'Cluster'); 
    data.addColumn('number', 'Loans'); 
    data.addColumn('number', 'Lines'); 

/* create for loops to add as many columns as necessary */ 

var len = (encoded_cluster_name.length)-27; // encoded_line_volume.length; 

    data.addRows(len); 

for(i=0; i<len; i++) { 

     var lines = (encoded_line_volume[i])/100000; 
    var loans = (encoded_loan_volume[i])/100000; 

data.setValue(i, 0, ' '+encoded_cluster_name[i]+' ');  /* x-axis */ 
data.setValue(i, 1, loans);    /* Y-axis category #1*/ 
data.setValue(i, 2, lines);    /* Y-axis category #2*/ 
} 

/*********************************end of loops*****/ 

    var chart = new google.visualization.ColumnChart(
       document.getElementById('chart_div')); 
    chart.draw(data, { 
        width: 600, 
        height: 300, 
        is3D: true, 
        title: 'Prospect Population', 
        legend: 'right' 
        }); 
} 

risposta

16

vorrei solo aggiornare i dati invece di sostituire il grafico. E chiedi al grafico di essere ridisegnato.

È possibile modificare lo playground example per verificarlo.
Ecco come si presenta:

function drawVisualization() { 
    // Create and populate the data table. 
    var data = new google.visualization.DataTable(); 
    data.addColumn('string', 'Name'); 
    data.addColumn('number', 'Height'); 
    data.addRows(3); 
    data.setCell(0, 0, 'Tong Ning mu'); 
    data.setCell(1, 0, 'Huang Ang fa'); 
    data.setCell(2, 0, 'Teng nu'); 
    data.setCell(0, 1, 174); 
    data.setCell(1, 1, 523); 
    data.setCell(2, 1, 86); 

    // Create and draw the visualization. 
    var v=new google.visualization.ColumnChart(
      document.getElementById('visualization') 
     ); 
    v.draw(data, null); 
    // Pretend update data triggered and processed 
    data.setCell(2, 1, 860); 
    v.draw(data, null); 
} 
​ 
+1

dlamblin, Grazie per aver risposto alla mia domanda. Ti devo brussels0828 – brussels0828

+0

Prego, e il link del parco giochi avrebbe dovuto avere il _ unencoded (come% 5F) nella parte # dell'URL. Ma i post vengono filtrati per il markdown. Il link in questo commento dovrebbe funzionare: http://code.google.com/apis/ajax/playground/?type=visualization#column_chart – dlamblin

+0

@dlamblin Ho incollato il codice nel Playground e ho premuto play, ma non lo fa qualsiasi cosa ... qualche idea? haha. – Shackrock

Problemi correlati