1

我在包含在脚本标签中的 PHP 文件中有一个 JS 脚本,出于某种奇怪的原因,它工作正常。

我通常会通过 AJAX 将 JS 变量分配给 PHP,但我错误地尝试了这个,它工作正常。任何想法为什么?

$(document.body).on("change","select[name=city]", function(){ 
    var v = $(this).val().replace("%","");
    if( v != "undefined" && v != undefined ){
    <?php $options['tax'] = v; ?>
    }
});

编辑:所以稍后在单击事件之后,我将通过 JS 显示该 php 变量,并显示正确的值。这对我来说毫无意义。

编辑:所以当我将 v 分配给 php 变量时,就像它分配一个常量一样,然后当我使用控制台 $eshopoptions['tax'] 在 JS 上输出它时,它会抛出它解释为 javascript 变量的 'v'。

4

1 回答 1

8

它不工作。php 无效。

<?php $options['tax'] = v; ?>
                        ^---this is an undefined constant in PHP.

仅仅因为v恰好出现在 JS 和 PHP 中并不意味着它们是同一个变量。他们不是。请记住,PHP 在服务器上执行,并且不知道 javascript 是什么,也不知道如何解析/执行它。Javascript 也一样。它不知道 PHP 是什么,甚至从未见过 php 代码,因为当JS 引擎在客户端浏览器中启动时, php 代码已经消失了。

您正在做的是将未定义的常量分配v$options['tax']. PHP 很有礼貌,假设您忘记在字符串周围加上引号,因此它将代码视为

<?php $options['tax'] = 'v'; ?>
                        ^-^--

因为这段代码实际上并没有输出任何东西,浏览器会看到:

if (v != "undefined" && v != undefined) {
}  // <-- look ma, no php!
于 2013-04-12T22:05:07.300 回答