在 google 饼图中使用 php 变量
Use php variable in google pie chart
我想在 Google 图表中使用我的 PHP 变量,但图表无法读取我的 PHP 标签。正如您在下面看到的代码,我将 PHP 变量放入脚本中。 (我在代码顶部定义的 PHP 变量,结果是正确的)。我的代码有什么问题?有什么解决办法吗?如果需要,请向我询问更多信息。谢谢。
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Order', 'Amount'],
['Completed', '<?php echo$completed ?>'],
['New', '<?php echo$new ?>']
]);
var options = {
title: 'Total Order ' + <?php echo$total; ?>
};
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
}
</script>
根据 docs,对于 Google 可视化饼图,必须有一种数据类型 string
列和一种 number
列。
因此在呈现数据之前,您应该将 Amount
列解析为 integer
或 float
。您可以在 php 本身或 javascript 中完成,
var data = google.visualization.arrayToDataTable([
['Order', 'Amount'],
['Completed', parseInt('<?php echo $completed; ?>')],
['New', parseInt('<?php echo $new; ?>')]
]);
var options = {
title: 'Total Order ' + parseInt('<?php echo $total; ?>')
};
如果您的金额值包含小数值,您也可以使用 javascript parseFloat()
而不是 parseInt()
。
工作示例。
<?php
$completed = 50;
$new = 10;
$total = 30;
?>
<html>
<head>
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Order', 'Amount'],
['Completed', parseInt('<?php echo $completed; ?>')],
['New', parseInt('<?php echo $new; ?>')]
]);
var options = {
title: 'Total Order ' + <?php echo$total; ?>
};
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id="piechart"></div>
</body>
</html>
您可以在 PHP 中使用脚本。
但是,您不能在脚本中使用 PHP。
不行。
<span id="json-genderby"><?php echo json_encode($arrayGenderGroupBy); ?></span>
<div id="piechart" style="width: 900px; height: 500px;"></div>
</body>
<script type="text/javascript">
$(window).on('load', function() {
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var json_gender = $("#json-genderby").text()
var arrayGenderBy = [];
var count = 0;
$.each(JSON.parse(json_gender), function(i, item) {
if (count == 0)
arrayGenderBy[count] = [item[0], item[1]];
else
arrayGenderBy[count] = [ item[0], parseInt(item[1]) ];
count ++
});
var data = google.visualization.arrayToDataTable(arrayGenderBy);
var options = { title: 'Servey Questions Answered by Gender' };
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
}
});
</script>
我想在 Google 图表中使用我的 PHP 变量,但图表无法读取我的 PHP 标签。正如您在下面看到的代码,我将 PHP 变量放入脚本中。 (我在代码顶部定义的 PHP 变量,结果是正确的)。我的代码有什么问题?有什么解决办法吗?如果需要,请向我询问更多信息。谢谢。
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Order', 'Amount'],
['Completed', '<?php echo$completed ?>'],
['New', '<?php echo$new ?>']
]);
var options = {
title: 'Total Order ' + <?php echo$total; ?>
};
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
}
</script>
根据 docs,对于 Google 可视化饼图,必须有一种数据类型 string
列和一种 number
列。
因此在呈现数据之前,您应该将 Amount
列解析为 integer
或 float
。您可以在 php 本身或 javascript 中完成,
var data = google.visualization.arrayToDataTable([
['Order', 'Amount'],
['Completed', parseInt('<?php echo $completed; ?>')],
['New', parseInt('<?php echo $new; ?>')]
]);
var options = {
title: 'Total Order ' + parseInt('<?php echo $total; ?>')
};
如果您的金额值包含小数值,您也可以使用 javascript parseFloat()
而不是 parseInt()
。
工作示例。
<?php
$completed = 50;
$new = 10;
$total = 30;
?>
<html>
<head>
<!--Load the AJAX API-->
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Order', 'Amount'],
['Completed', parseInt('<?php echo $completed; ?>')],
['New', parseInt('<?php echo $new; ?>')]
]);
var options = {
title: 'Total Order ' + <?php echo$total; ?>
};
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
}
</script>
</head>
<body>
<div id="piechart"></div>
</body>
</html>
您可以在 PHP 中使用脚本。
但是,您不能在脚本中使用 PHP。
不行。
<span id="json-genderby"><?php echo json_encode($arrayGenderGroupBy); ?></span>
<div id="piechart" style="width: 900px; height: 500px;"></div>
</body>
<script type="text/javascript">
$(window).on('load', function() {
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var json_gender = $("#json-genderby").text()
var arrayGenderBy = [];
var count = 0;
$.each(JSON.parse(json_gender), function(i, item) {
if (count == 0)
arrayGenderBy[count] = [item[0], item[1]];
else
arrayGenderBy[count] = [ item[0], parseInt(item[1]) ];
count ++
});
var data = google.visualization.arrayToDataTable(arrayGenderBy);
var options = { title: 'Servey Questions Answered by Gender' };
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
}
});
</script>