【问题标题】:how to create a bar chart with php data variables [duplicate]如何使用php数据变量创建条形图[重复]
【发布时间】:2014-04-27 23:57:18
【问题描述】:

我正在使用 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 数组替换“标签”以及“数据”

【问题讨论】:

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


【解决方案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 数组。

【讨论】:

  • 我可以为“标签”部分做同样的事情吗?我试过了,但它似乎不起作用:/数据虽然有效! :)
  • 最终弄明白了 -- , 谢谢!
【解决方案2】:
<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);

简单:)

希望这会对你有所帮助。

【讨论】:

  • 对不起,准备好的处理程序是什么意思?这也是使用数组的正确方法:“标签:'chartLabels'”和“数据:'chartValues'”
  • js 有未来,它说 js 代码只有在页面加载后才能运行。去谷歌上查询。我不明白,你问的关于数组的问题。对值使用值数组名称,对标签使用标签数组名称。
猜你喜欢
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 2016-08-22
  • 2021-05-18
  • 2021-01-25
  • 2015-09-03
相关资源
最近更新 更多