如何将返回的Javascript函数赋值给PHP变量并在SQL查询中使用


How to assign a returned Javascript function to a PHP variable and use in an SQL Query?

我使用Javascript获取'member_id' url参数,然后需要将该值分配给我在SQL查询中使用的PHP变量。当我简单地回显PHP变量时,一切看起来都很好,但如果我试图在通过POST提交的SQL查询中包含PHP变量,那么SQL查询就会出现错误。

    <script>
var param1var = getQueryVariable("member_id");
function getQueryVariable(variable) {
  var query = window.location.search.substring(1);
  var vars = query.split("&");
  for (var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  } 
  alert('Query Variable ' + variable + ' not found');
}
</script>
<?php $foo="<script type='text/javascript'>
document.write(getQueryVariable('member_id'));
</script>";
?>

SQL Error: *你的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在'text/javascript'> document.write(getQueryVariable('member_id'))附近使用正确的语法;

PHP在服务器端执行,Javascript在客户端执行。php chunklet所做的只是输出一小段Javascript。javascript不会在服务器上执行。它被发送到客户端并在浏览器中执行,在PHP关闭很久之后。

要将数据从Javascript发送回PHP,必须使用AJAX调用或某种形式的普通表单提交。

这是因为PHP在服务器上运行,而JS在客户端上执行。顺便说一句,你可以用另一种方式来做,所以在JS中:

<script type="text/javascript">
    var myval = '<?php echo $myphpval ?>';
</script>

这是可能的,因为PHP在服务器上执行,而JS在客户端上执行。但是,如果您想将JS值发送给PHP脚本,则需要在DOM加载后执行此操作,通常是通过AJAX调用。