繁体   English   中英

如何将返回的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 Query会出错。

    <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错误:*您的SQL语法有错误; 检查与您的MySQL服务器版本相对应的手册,以在'text / javascript'> document.write(getQueryVariable('member_id'))附近使用正确的语法; ')'在第1行*

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调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM