Ign*_*cio 1 javascript php 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; ?>
}
});
Run Code Online (Sandbox Code Playgroud)
编辑:所以稍后在点击事件后我通过JS显示该php变量,并显示正确的值.这对我没有意义.
编辑:所以当我将v分配给php变量时,它就像分配一个常量一样,然后当我用JS $ eshopoptions ['tax']输出它时,它会抛出它解释为javascript变量的'v'.
它不起作用.php无效.
<?php $options['tax'] = v; ?>
^---this is an undefined constant in PHP.
Run Code Online (Sandbox Code Playgroud)
只是因为v碰巧出现在JS和PHP中并不意味着它们是同一个变量.他们不是.请记住,PHP在服务器上执行,并且没有CLUE是什么javascript,或者如何解析/执行它.对于Javascript也是如此.它不知道PHP是什么,甚至从来没有SEES php代码,因为当JS引擎在客户端浏览器中启动时,php代码是GONE.
你正在做的是将未定义的常量赋值v给$options['tax'].PHP是礼貌的,并假设你忘记在字符串周围加上引号,所以它将代码视为
<?php $options['tax'] = 'v'; ?>
^-^--
Run Code Online (Sandbox Code Playgroud)
由于此代码实际上没有输出任何内容,浏览器将看到:
if (v != "undefined" && v != undefined) {
} // <-- look ma, no php!
Run Code Online (Sandbox Code Playgroud)