在内联PHP中包含Javascript变量

在内联PHP中包含Javascript变量,javascript,php,arrays,Javascript,Php,Arrays,我在用图表绘制图表。现在要放在图表上的点是一个数组,我循环所有结果来绘制多个图表 根据循环中的当前位置,我想要一个包含PHP数组中的值的图表 这是我当前的代码 $('.ct-chart-current').each(function(i,v) { new Chartist.Line(this, { labels: [<?php echo $labelscurrent[0] ?>], series: [ [<?php

我在用图表绘制图表。现在要放在图表上的点是一个数组,我循环所有结果来绘制多个图表

根据循环中的当前位置,我想要一个包含PHP数组中的值的图表

这是我当前的代码

$('.ct-chart-current').each(function(i,v) {
    new Chartist.Line(this, {
        labels: [<?php echo $labelscurrent[0] ?>],
        series: [
            [<?php echo $current[X] ?>]
        ]
    }, currentopts);
});
$('.ct图表当前')。每个(函数(i,v){
新的图表绘制线(此{
标签:[],
系列:[
[]
]
},当前选项);
});
您可以看到,我正在尝试从$current数组中获取值X。现在我如何在each循环中使用函数调用中的“I”

伪码
$('.ct图表当前')。每个(函数(-->i)
]
},当前选项);
});
我在我希望在PHP中回显的javascript“I”周围添加了箭头。
我在PHP中尝试过不同的方法,比如echo'ing
标记,但我猜应该有更简单的方法

不容易。您只需要了解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);
var currentArray=;
var标签=;
$('.ct图表当前')。每个(函数(i、v){
新的图表绘制线(此{
标签:标签[i],
系列:[currentArray[i]]
});
},当前选项);
显然,您必须用自己的变量替换变量,因为我们遗漏了您的一些代码;)
但是你有诀窍:通过回显json_编码的值将值从PHP传递到Javascript。

你可以用json编码PHP变量并打印它们。
对于
系列
数据,您需要将数据放入单独的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);
});
var系列_数据=;
$('.ct图表当前')。每个(函数(i、v){
新的图表绘制线(此{
标签:,
系列:[
系列_数据[i]
]
},当前选项);
});

我看到过这个帖子,情况不一样,因为我已经用javascript写出了PHP。我需要在PHP中回显Javascript,而这正是Javascript中的内容。希望您理解.PHP在JS之前运行,这样您所要求的就不可能了。也许您使用
i
值对PHP进行ajax调用,并让它返回您需要的内容。为什么我没有想到这一点呢!非常感谢你!我要试一试
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);
});