2016-06-01 8 views
3

Ich erstelle ein Graph Diagramm mit Google APIs Ich verwendete Java Script Quelle von Google. In PHP verwende ich while-Schleife, wo ich einige Array-Zeile mit Abfrage abholen, diese mysql-Abfrage funktioniert gut, und Werte von abgerufenen Array sind auch korrekt (wenn ich das in PHP Echo) aber Problem ist, wie übergebe ich diese Werte JavaScripts funktionieren? Mein PHP-Code wird wie folgt:Wie übergibt man Variablen von der While-Schleife von PHP an JavaScript?

while ($graph_result = mysqli_fetch_row($graph)) 
{ 
    $graphCount = $graph_result[0]; 
    $graphMonth = $graph_result[1]; 
    echo $graphCount; // This works 
    echo $graphMonth; 
} 

Das gibt mir in Folge von zwei Reihen, die jeweils zwei unten aufgeführten Werte enthält:

enter image description here

Jetzt möchte ich Java diese oben genannten Werte zu übergeben Script-Funktion, so dass es Graph-Diagramm für mich zieht, mein Javascript-Code ist wie folgt:

function drawChart() { 
    var data = google.visualization.arrayToDataTable([ 
     ['Months', 'users'], 
     [graphMonth, graphCount] // Here I have to place PHP values ! 
    ]); 
} 

so wie diese valu passieren es zu JS ???

Antwort

1

Versuchen Sie den Code unten,

In PHP

$i = 0; 
while ($graph_result = mysqli_fetch_row($graph)) 
{ 
    $graph_values[$i]["count"] = $graph_result[0]; 
    $graph_values[$i]["month"] = $graph_result[1]; 
    $i++; 
} 

In Skript,

<script> 
    <?php foreach($graph_values as $key){ ?> 
    drawChart('<?php echo $key["count"]; ?>', '<?php echo $key["month"]; ?>'); 
    <?php } ?> 

function drawChart(graphCount, graphMonth) { 
    var data = google.visualization.arrayToDataTable([ 
     ['Months', 'users'], 
     [graphMonth, graphCount] 
    ]); 
} 
</script> 
0

können Sie json, das zu tun verwenden.
In Ihrer while-Schleife, ein assoziatives Array bauen und es in json kodieren:

$jsonArray = array(); 
while ($graph_result = mysqli_fetch_row($graph)) 
{ 
    $graphCount = $graph_result[0]; 
    $graphMonth = $graph_result[1]; 
    $jsonArray[] = array($graphCount, $graphMonth); 
} 
echo '<div id="json">' . json_encode($jsonArray) . '</div>'; 

Und dann wiederherstellen es in Ihrem javascript:

var json_data = JSON.parse(document.getElementById('json').innerHTML); 
function drawChart(json_data) { 
    var data = google.visualization.DataTable(); 
    data.addColumn('number','Months'); 
    data.addColumn('number','users'); 
    data.addRows(json_data); 
} 
0
<?php while ($graph_result = mysqli_fetch_row($graph)) 
{ 
    ?> 
<script> 
function drawChart() { 
    var data = google.visualization.arrayToDataTable([ 
     ['Months', 'users'], 
     [<?php echo $graph_result[0]; ?>, <?php echo $graph_result[1]; ?>] 
    ]); 
} 
</script> 
<?php 
} 
?> 

Ich weiß nicht, ob es Best Practice oder nicht ..

Verwandte Themen