mysql查询中获取javascript变量?

3lxsmp7m  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(375)

我不熟悉javascript和php。有人能告诉我如何在php变量中使用javascript变量吗?我想在mysql查询中使用这个php变量从mysql数据库中获取数据。在mysql查询中是否可以直接获取javascript变量?
我试过了,但没能得到结果。我在下面附上了代码

<script>
var baccount = document.getElementById('accountid');
var bacc = baccount.value;
</script>

<?php 

$abcd = '"+bacc+"';

$quer=mysql_query("SELECT * from fpay_user where account_id='$abcd'");

$result=mysql_fetch_array($quer);

$rbal = $result['balance'];

echo $rbal;

?>
zlwx9yxi

zlwx9yxi1#

不是那么简单。javascript在浏览器(客户端)上运行,php在web服务器(主机)上运行。这是两台不同的电脑。要将数据从客户端传递到主机,可以从javascript向服务器上的特定url发出http请求。当服务器发送响应时,您可以再次用javascript处理它。
例如(使用jquery):

<script>
  // success will be called when the server sent a response.
  function success(result) {
    // result.responseJSON is a javascript object: { balance: 1234 }
    let balance = result.responseJSON.balance
  }

  $.ajax({
    url: '/path/to/script.php',
    data: {
        bacc: baccount.value
      },
    success: success,
    dataType: 'json'
  });
</script>

在php中,您可以获取传递的值,执行查询并返回结果:

<?php
  // get the passed value
  $abcd = $_GET['bacc'];

  // do the query SAFELY. See explanation below.
  $quer = mysql_query("SELECT * from fpay_user where account_id='" . mysql_escape_string($abcd) . "'");
  $result=mysql_fetch_array($quer);

  // Now return the result as json string
  header('Content-Type: application/json');
  // This will encode the result as: "{balance: 1234}"
  echo json_encode($result);

一件非常重要的事。您应该始终使用以下内容清理接收到的值 mysql_escape_string . 如果不这样做,您的软件很容易受到sql注入的影响。我已将此函数调用添加到您的示例中。

p8h8hvxi

p8h8hvxi2#

您需要了解客户机语言和服务器语言的区别。
在您的代码中,javascript在浏览器中执行,而php在服务器中执行。为了让php知道客户端发生了什么,客户端必须通过查询字符串、表单post或原始数据post将这些信息发送到服务器。
对于您的情况,您可以从javascript向服务器发送ajax请求(使用原生xmlhttprequest或jquery)

$.ajax({
type: "POST",
  url: url,
  data: {bacc:value},
});

然后您的php可以通过$\u post[“bacc”]
请务必理解,尽管您可以将其写入同一个文件(这是一种不好的做法),但它们是在不同的位置(客户机或服务器)执行的

相关问题