SKUグループ、Group_ID、編集ボタン、および削除ボタンの4つの列を持つHTML表があります。私は現在、削除機能に取り組んでいるので、削除ボタンを押すたびに確認ボックスがポップアップし、「OK」を押すと、行が削除され、データベースから削除される削除クエリが送信されるようにします。ボタン上の表の行を削除クリックAjaxの使用
私は、Ajaxと別のPHPスクリプトを削除クエリに使用することを知っていますが、それを理解できないようです。どんな助けもありがとう!削除ボタン用
HTML:
<td><input type="button" class="delete" name="delete" value="Delete" onclick="deleteRow(this)"></td>
JavaScriptが...私は、これはいくつかの作業を必要と知っているが、私の質問のためにそれを掲示しています:
function deleteRow(r) {
if (confirm('Are you sure you want to delete this entry?')) {
var i = r.parentNode.parentNode.rowIndex;
document.getElementById("skuTable").deleteRow(i);
}
request = $.ajax({
type: "POST",
url: "delete.php",
data: i
});
request.done(function (response, textStatus, jqXHR){
if(JSON.parse(response) == true){
console.log("row deleted");
} else {
console.log("row failed to delete");
}
});
// Callback handler that will be called on failure
request.fail(function (jqXHR, textStatus, errorThrown){
// Log the error to the console
console.error(
"The following error occurred: "+
textStatus, errorThrown
);
});
// Callback handler that will be called regardless
// if the request failed or succeeded
request.always(function() {
});
}
delete.php:
<?php
$SKU_Group = $_POST['SKU Group'];
$Group_ID = $_POST['Group_ID'];
$host="xxxxxx";
$dbName="xxxxxx";
$dbUser="xxxxxxxxxxxxxx";
$dbPass="xxxxxxxxxxx";
$pdo = new PDO("sqlsrv:server=".$host.";Database=".$dbName, $dbUser, $dbPass);
$delete = "DELETE FROM SKU_Group_Dim WHERE Group_ID = '$Group_ID'";
$stmt = $pdo->prepare($delete);
$result = $stmt->execute();
echo json_encode($result);
if(!$result) {
echo json_encode(sqlsrv_errors());
}
?>
[Little Bobby](http://bobby-tables.com/)によると*** [あなたのスクリプトはSQLインジェクション攻撃の危険にさらされています。](http://stackoverflow.com/questions/60174/how- can-i-prevent-sql-injection-in-php)***。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –
これはあなたが正しい道を歩いているように見えますが、うまくいかないのですか? –
ajaxのデータ変数には、$ _POST getterに対応するパラメータがありません。 –