2014-04-27 51 views
0

我正在使用chart.js创建条形图,但是我想要在条形图中显示的值是一个php数组,一个数组和一个数组。我如何将这些arays添加到条形图中。目前我有这对于条形图中的数据:如何使用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阵列,以及“数据”

+0

请使用搜索。这里有很多像这样的问题:[将php数组转换为Javascript](http://stackoverflow.com/q/5618925/367456) – hakre

回答

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数组。

+0

,我可以为“标签”部分做同样的事吗?我试过了,但它似乎并没有工作:/ 虽然数据工作! :) – user3506938

+1

了它到底 - , 感谢名单! – user3506938

0
<script type="text/javascript"> 
    var chartLabels= <?php echo $chartLabels; ?> 
    var chartValues= <?php echo $chartValues; ?> 
</script> 

奇怪了,这个代码是行不通的。你是否在ready处理程序中使用了所有的JavaScript?另外,请注意,在获取数据和绘制数据之前,应该声明这些变量并赋值。

另一种方法来实现你想要的:

可以有使用Ajax请求。绘制图之前,您将发送一个jax请求并从php服务器获取json响应。它将包含链接到标签的所有标签和所有值。现在,你需要它来解析这个json并构建图表。

阅读getJSONparseJSON Java脚本功能。

你的PHP脚本将只产生2个数组,然后将它们合并成1个大数组和编码它们。

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

简单:)

希望这会帮助你。

+0

抱歉,准备处理程序是什么意思? 也这是使用数组的正确方法:“标签:‘chartLabels’,”和“数据:‘chartValues’” – user3506938

+0

有前途的JS,它说的js代码来运行只有页面加载。去谷歌上查询。我不明白,你对阵列的问题。对值使用值数组名称,对标签使用数组名称。 –