我是Java和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;
?>
答案 0 :(得分:0)
这不是那么简单。 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注入的影响。我已将此函数调用添加到您的示例中。
答案 1 :(得分:0)
您需要了解客户端语言和服务器语言的区别。
在您的代码中,JavaScript在浏览器中执行,而PHP在您的服务器中执行。为了使PHP知道客户端发生了什么,您的客户端必须通过查询字符串,表单发布或原始数据发布将该信息发送到服务器。
对于您的情况,您可以使用JavaScript将Ajax请求发送到服务器(使用本机XMLHttpRequest或jQuery)
$.ajax({
type: "POST",
url: url,
data: {bacc:value},
});
然后您的PHP可以通过$ _POST [“ bacc”]
访问它请理解,尽管您可以将其写入同一文件中(这是一种不好的做法),但它们是在不同的位置(客户端或服务器)执行的