在html按钮中,我有这个onclick事件:
#! /bin/bash
echo "Script for exercise 3f"
find /home/$1 -name $2 -print
echo `whoami` controlled $1 >> /var/log/scriptlog
exit
然后我有这个功能
onclick='javascript:updateStatus(59)'
这是update-status.php
function updateStatus(){
$.ajax({
type: 'post',
url: '/update-status.php',
success: function(data){
// callback function
}
});
return false;
}
最终,我希望将原始onclick事件中的数字(在此示例中为59,但可以是任何数字)传递给update-status.php中的$ requestid变量。
实现这一目标的最佳/正确方法是什么?
答案 0 :(得分:0)
想出使用"数据"在googling之后的功能中,抱歉。
答案 1 :(得分:0)
由于您使用的是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
答案 2 :(得分:0)
首先,在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'];