我使用Google API创建一个Graph图表我使用了Google的Java Script源代码。在PHP中,我使用while循环,我使用查询获取一些数组行,这个mysql查询工作正常,并且fetched数组的值也正确(当我在PHP中回应时)但问题是如何通过这个JavaScripts函数的值? 我的PHP代码如下:
while ($graph_result = mysqli_fetch_row($graph))
{
$graphCount = $graph_result[0];
$graphMonth = $graph_result[1];
echo $graphCount; // This works
echo $graphMonth;
}
这给了我两行的结果,每行包含下面列出的两个值:
现在我想将上面的值传递给Java脚本函数,以便它为我绘制Graph图表,我的javascript代码如下:
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Months', 'users'],
[graphMonth, graphCount] // Here I have to place PHP values !
]);
}
那么如何将这些值传递给JS ???
答案 0 :(得分: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>
答案 1 :(得分:1)
<?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
}
?>
我不知道这是不是最好的做法..
答案 2 :(得分: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);
}