2016-06-01 109 views
3

我使用Google API创建一个Graph图表我使用了Google的Java Script源代码。在PHP我使用while循环,我使用查询获取一些数组行,这个MySQL查询工作正常,并且获取数组的值也是正确的(当我在PHP中回应),但问题是,如何将此值传递给JavaScripts的功能? 我的PHP代码如下:如何将PHP的while循环变量传递给JavaScript?

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

这给了我两行的结果,每个包含下列两个值:

enter image description here

现在我想通过这上面的Java值脚本函数,以便它为我绘制Graph图表,我的javascript代码如下:

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

那么如何传递这个值ES到JS?

回答

1

尝试下面的代码,

在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++; 
} 

在脚本中,

<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

您可以使用JSON来做到这一点。
在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恢复它:

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

我不知道这是否是最佳做法与否..