如何将javascript变量传递给Ajax脚本?

时间:2016-05-12 15:55:31

标签: javascript jquery ajax

在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变量。

实现这一目标的最佳/正确方法是什么?

3 个答案:

答案 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'];