【问题标题】:How to assign a returned Javascript function to a PHP variable and use in an SQL Query?如何将返回的 Javascript 函数分配给 PHP 变量并在 SQL 查询中使用?
【发布时间】:2011-10-27 16:45:38
【问题描述】:

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

【问题讨论】:

    标签: php javascript sql get


    【解决方案1】:

    PHP 在服务器上执行,Javascript 在客户端上执行。你所有的 php 块正在做的是输出一个小的 Javascript 的 sn-p。该 javascript 不在服务器上执行。在 PHP 关闭很久之后,它被发送到客户端并在浏览器中执行。

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 这是我的问题,将变量传递给 sql 查询,所以我不认为我可以向后做。
      • 是的,我只是顺便提了一下。请参阅我的最后一段 - 或 Marc B 的帖子 - 关于该做什么:)
      猜你喜欢
      • 1970-01-01
      • 2022-01-06
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      相关资源
      最近更新 更多