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