2016-06-01 15 views
3

私はGoogle APIを使用して1つのグラフを作成しています。GoogleのJava Script sourceを使用しました。 PHPでは、whileループを使用していますが、クエリを使用して配列の行をフェッチします。このmysqlクエリは正常に動作し、フェッチされた配列の値も正しくなります(PHPでエコーしたとき)。 JavaScriptsは機能しますか? 次のように私のPHPコードは次のとおりです。whileループからJavaScriptへ変数を渡すには?

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

これは、2つの行の結果で私を与え、それぞれが以下に示す二つの値が含まれます。

enter image description here

を今私は、Javaには、この上記の値を渡したいです私のためのグラフグラフを描画するようにスクリプト関数は、私のjavascriptコードは次のとおりです:

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

私はこの値を渡す方法JSに?

答えて

1

あなたはそれを行うには、JSONを使用することができます

<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

、スクリプトで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++; 
} 

、以下のコードを試してみてください。それがある場合、私は知らない

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 
} 
?> 

:あなたのwhileループで
、連想配列を構築し、JSONでそれをエンコード:

$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>'; 

をしてからJavaScriptでそれを回復ベストプラクティスかどうか。

関連する問題