2016-05-12 9 views
-1

私はこれのonclickイベントを持っている:javascript変数をAjaxスクリプトに渡すにはどうすればよいですか? HTMLボタンで

onclick='javascript:updateStatus(59)' 

は、その後、私は、この関数に

function updateStatus(){ 
    $.ajax({ 
    type: 'post', 
    url: '/update-status.php', 
    success: function(data){ 
     // callback function 
    } 
}); 

    return false; 
} 

を持っており、これは最終的に更新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!"; 
    } 

ですが、私はしたいですupdate-status.phpの$ requestid変数に渡すために、元のonclickイベントの番号(この例では59ですが、任意の数字にすることができます)。

これを行うにはどのような方法が最適ですか?

+0

第1のステップは、あなたの 'updateStatus'関数にパラメータを追加することです:' function updateStatus(requestId) ' – forgivenson

答えて

0

グーグルグーグルでは「データ」を使用しています。

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 
0

まずであれば、あなたのjavascript関数で引数に渡され、このようなあなたのPHPスクリプトに送信を取る何例えば

、:

function updateStatus(id){ 
    $.ajax({ 
    type: 'post', 
    url: '/update-status.php', 
    data: {id: id}, 
    success: function(data){ 

    } 
    }); 
    return false; 
} 

$_POST['id']にアクセスしてください。ただし、SQLインジェクション攻撃を防ぐために値をエスケープしてください。

$requestid = $_POST['id']; 
関連する問題