我正在使用chart.js创建条形图,但我希望条形图中的值是一个php数组,一个数组用于值,一个阵列用于标签。我该如何将这些aray添加到条形图中。目前我有这个条形图的数据:
ar barData = {
labels : ["January","February","March","April","May","June"],
datasets : [
{
fillColor : "#48A497",
strokeColor : "#48A4D1",
data : [456,479,324,569,702,600]
}
]
}
我试着做了以下操作,但仍然没有成功:
<script type="text/javascript">
var chartLabels= <?php echo $chartLabels; ?>
var chartValues= <?php echo $chartValues; ?>
</script>
我想用php数组替换"标签",以及"数据"
如果$chartLabels或$chartValues是数组,则不能回显它们。您可以将数组内爆为js字符串,并将其作为数据的值,如下所示:
var barData = {
labels : ["January","February","March","April","May","June"],
datasets : [
{
fillColor : "#48A497",
strokeColor : "#48A4D1",
data : <?php echo '['.implode(", ", $data).']'?>
}
]
}
其中$data是一个普通的php数组。
<script type="text/javascript">
var chartLabels= <?php echo $chartLabels; ?>
var chartValues= <?php echo $chartValues; ?>
</script>
奇怪的是,这个代码不起作用。您是否在ready
处理程序中使用了所有的javascript?另外,请注意,在获取数据和绘制数据之前,应该声明这些变量并分配值。
实现您想要的另一种方法:
您可以在那里使用ajax请求。在绘制图形之前,您将发送ajax请求并从php服务器获得json响应。它将包含链接到标签的所有标签和所有值。现在,您需要它来解析这个json并构建图。
阅读有关getJSON
或parseJSON
java脚本函数的信息。
php脚本只生成2个数组,然后将它们合并为一个大数组并对它们进行编码。
$values = array();
// get values
$labels = array();
// get labels
$result = array($values, $labels);
echo json_enocde($result);
简单:)
希望这对你有帮助。