我正在使用chart.js创建条形图但是条形图中我想要的值是一个php数组,一个数组用于值,一个数组用于标签。如何将这些数组添加到条形图中。目前我对条形图的数据有这个:
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数组替换'labels',以及'data'
答案 0 :(得分:1)
如果$ chartLabels或$ chartValues是数组,则无法回显它们。您可以将数组作为js字符串内爆,并将其作为数据的值放在这样的:
var barData = {
labels : ["January","February","March","April","May","June"],
datasets : [
{
fillColor : "#48A497",
strokeColor : "#48A4D1",
data : <?php echo '['.implode(", ", $data).']'?>
}
]
}
其中$ data是一个普通的php数组。
答案 1 :(得分:0)
<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个数组,然后将它们合并为1个大数组并对其进行编码。
$values = array();
// get values
$labels = array();
// get labels
$result = array($values, $labels);
echo json_enocde($result);
简单:)
希望这会对你有所帮助。