为什么这个JS变量在我的PHP中运行

时间:2013-04-12 22:01:46

标签: php javascript jquery

我在一个用脚本标签包装的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'。

1 个答案:

答案 0 :(得分:8)

它不起作用。 php无效。

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

仅仅因为v碰巧出现在JS和PHP中并不意味着它们是同一个变量。他们不是。请记住,PHP在服务器上执行,并且没有CLUE是什么javascript,或者如何解析/执行它。对于Javascript也是如此。它不知道PHP是什么,甚至从来没有SEES php代码,因为当JS引擎在客户端浏览器中启动时,php代码 GONE

您正在做的是将未定义的常量v分配给$options['tax']。 PHP是礼貌的,并假设你忘记在字符串周围加上引号,所以它将代码视为

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

由于此代码实际上没有输出任何内容,浏览器将看到:

if (v != "undefined" && v != undefined) {
}  // <-- look ma, no php!