如何使用php数据变量创建条形图

时间:2014-04-27 23:57:19

标签: javascript php charts bar-chart chart.js

我正在使用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'

2 个答案:

答案 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和构建图。

阅读getJSONparseJSON java脚本函数。

你的php脚本只会生成2个数组,然后将它们合并为1个大数组并对其进行编码。

$values = array();
// get values
$labels = array();
// get labels
$result = array($values, $labels);
echo json_enocde($result);

简单:)

希望这会对你有所帮助。