我使用chartist绘制图表。现在,要放在图表上的点数就是一个数组,我会循环遍历所有结果以绘制多个图表。
根据循环中的当前位置,我想要一个包含PHP数组值的图表。
这是我目前的代码
<input type="datetime-local" id="datetimepic" name="datetimepic"/>
你可以看到我试图从$ current数组中获取值X.现在我怎样才能在每个循环中使用函数调用中的&#34; i&#34;
$('.ct-chart-current').each(function(i,v) {
new Chartist.Line(this, {
labels: [<?php echo $labelscurrent[0] ?>],
series: [
[<?php echo $current[X] ?>]
]
}, currentopts);
});
我在javascript&#34; i&#34;周围添加了箭头。我很乐意在PHP中回应。
我尝试过不同类型的方法,例如在我的PHP中回显$('.ct-chart-current').each(function(--> i <-- ,v) {
new Chartist.Line(this, {
labels: [<?php echo $labelscurrent[0] ?>],
series: [
[<?php echo $current[ -->i <--] ?>]
]
}, currentopts);
});
标记,但我猜测应该有更简单的方法吗?
答案 0 :(得分:4)
不容易。您只需要了解PHP和Javascript之间的主要区别。第一个是服务器端。第二是客户端。当客户端获得javascript时,服务器端(因此,PHP)已经被解析。
执行所需操作的方法是使用简单格式JSON输出$ current数组,这很容易在Javascript中获取。例如......
var currentArray = <?php echo json_encode($currentArray); ?>;
var labels = <?php echo json_encode($labelscurrent); ?>;
$('.ct-chart-current').each(function(i, v) {
new Chartist.Line(this, {
labels: labels[i],
series: [currentArray[i]]
});
}, currentopts);
显然,您必须替换变量,因为我们错过了您的一些代码;) 但是你有诀窍:通过回显json_encoded值将值从PHP传递给Javascript。
答案 1 :(得分:1)
您可以对您的PHP变量进行JSON编码并打印它们
对于series
数据,您需要将数据放入单独的JavaScript变量中,然后在JavaScript运行时访问它。
var series_data = <?php echo json_encode($current); ?>;
$('.ct-chart-current').each(function(i,v) {
new Chartist.Line(this, {
labels: <?php echo json_encode($labelscurrent[0]); ?>,
series: [
series_data[i]
]
}, currentopts);
});