如何使用yii将javascript变量传递给php变量

时间:2015-06-24 18:26:31

标签: javascript php yii

首先:我知道这是重复的。我正在创造这个,因为所有其他问题的答案都不能满足我。我有一个非常特殊的情况,我使用yii和tryi我无法通过ajax发送它,因为php和javascript在同一页面的同一页面上。

基本上我要问的是,如果你有一个使用yii和图表js的页面,你需要渲染一个页面,该页面需要来自点击栏的两个参数,由activeBars[0]表示:

<script>
    canvas.onclick = function(event) {
        var activeBars = getBarsAtEvent(event);
        <?php $controller->functionThatRendersView($arg1 /**(activeBars[0].value*/,$arg2 /**(activeBars[0].label*/); ?>
    }

我不在乎它是否会自动渲染,这是另一个问题。我只需要将这些参数传递给php。

感谢。

另外,如果它有帮助,我通过php for循环将这两个值传递给javascript:

labels: [<?php for ($i=1;$i<=$numberIssues;$i++) {
            echo $i . ",";
        }?>],

抓取$i并将其放入标签参数的问题是,我不知道哪个条形标签是被点击的标签,我需要javascript将点击的条形值传递给php。< / p>

2 个答案:

答案 0 :(得分:2)

再次向我们解释为什么你不能使用ajax。你说“因为php和javascript在同一页面上”。这不是ajax的原因 - 你需要一个不同的URL用于ajax请求,以及一个单独的PHP文件或其他东西来处理它。

如果没有ajax,javascript就无法向PHP发送信息,因为PHP在客户端上运行javascript之前在服务器上运行。当然,除非您想要进行完整的页面刷新,否则从用户的角度来看,这会更慢并且通常更糟糕。

答案 1 :(得分:1)

我找到了问题的答案!我正在为其他绊脚石的人做这件事:

要将javasctipt变量var jsInteger = 5;传递给php,请键入(在javascript中):

window.location.href = "yourPhpFile.php?phpInteger="+jsInteger;

你可以在php中访问变量:

$phpInteger = $_GET['phpInteger'];

这将需要页面刷新,并将您重定向到php文件。