【问题标题】:Including a Javascript variable in inline PHP [duplicate]在内联 PHP 中包含一个 Javascript 变量 [重复]
【发布时间】:2016-06-26 18:22:14
【问题描述】:

我正在使用 chartist 绘制图表。现在要放在图表上的点以数组的形式出现,我正在循环所有结果以绘制多个图表。

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

这是我当前的代码

$('.ct-chart-current').each(function(i,v) {
    new Chartist.Line(this, {
        labels: [<?php echo $labelscurrent[0] ?>],
        series: [
            [<?php echo $current[X] ?>]
        ]
    }, currentopts);
});

您可以看到我正在尝试从 $current 数组中获取值 X。现在我如何在每个循环中使用函数调用中的 "i"

伪代码

$('.ct-chart-current').each(function(--> i <-- ,v) {
    new Chartist.Line(this, {
        labels: [<?php echo $labelscurrent[0] ?>],
        series: [
            [<?php echo $current[ -->i <--] ?>]
        ]
    }, currentopts);
});

我在我希望在我的 PHP 中回显的 javascript "i" 周围添加了箭头。 我已经尝试过不同类型的方法,比如在我的 PHP 中回显&lt;script&gt; 标签,但我猜应该有更简单的方法?

【问题讨论】:

  • 我看过这个帖子,情况不一样,因为我已经在 javascript 中吐出了 PHP。而且我需要在位于 Javascript 中的 PHP 中回显 Javascript。希望你能理解。
  • PHP 在 JS 之前运行,因此您所要求的将是不可能的。也许您使用 i 的值对 PHP 进行 ajax 调用并让它返回您需要的内容。

标签: javascript php arrays


【解决方案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);
});

【讨论】:

    【解决方案2】:

    不是一件容易的事。您只需要了解 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。

    【讨论】:

    • 我怎么没想到!非常感谢!我试试看
    猜你喜欢
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 2019-04-21
    • 2016-02-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多