[英]How do I pass javascript variable to Ajax script?
在 html 按钮中,我有这个 onclick 事件:
onclick='javascript:updateStatus(59)'
然后我有这个功能
function updateStatus(){
$.ajax({
type: 'post',
url: '/update-status.php',
success: function(data){
// callback function
}
});
return false;
}
这是 update-status.php
$sql = "UPDATE requests SET status='Closed' WHERE requestid=$requestid";
$updatestatus = mysqli_query($con, $sql);
if (!$updatestatus) {
die("Database query failed: " . mysqli_error($con));
} else {
return "success!";
}
最终,我希望将原始 onclick 事件中的数字(在本例中为 59,但可以是任何数字)传递到 update-status.php 中的 $requestid 变量中。
实现这一目标的最佳/正确方法是什么?
经过更多的谷歌搜索,想出在函数中使用“数据”,抱歉。
由于您使用的是 JQuery AJAX 函数,因此只需在配置对象data
使用另一个参数。 您还缺少该函数的参数。
function updateStatus(i){
$.ajax({
type: 'post',
data: 'requestid='+i,
url: '/update-status.php',
success: function(data){
// callback function
}
});
return false;
}
您还可以创建地图并发送地图,就像这样
...
data: {"requestid" : i},
...
不过,您的服务器端代码应该更新。 您不希望在没有首先清理它的情况下使用来自客户端的输入。 这打开了 SQL 注入攻击的威胁。
例如,如果 requestid 的值为
1 or '1'='1' --
或者
1; drop table requests
首先,在您的 javascript 函数中获取传入的参数并将其发送到您的 PHP 脚本,如下所示:
function updateStatus(id){
$.ajax({
type: 'post',
url: '/update-status.php',
data: {id: id},
success: function(data){
}
});
return false;
}
在您的 PHP 中,通过$_POST['id']
访问它。 但是,请确保您对该值进行转义以防止 SQL 注入攻击。
$requestid = $_POST['id'];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.