在内联PHP中包含一个Javascript变量

时间:2016-03-11 13:21:16

标签: javascript php arrays

我使用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); }); 标记,但我猜测应该有更简单的方法吗?

2 个答案:

答案 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);
});