【发布时间】:2017-02-13 20:29:48
【问题描述】:
我有一个包含 4 列的 HTML 表:SKU 组、Group_ID、编辑按钮和删除按钮。我现在正在处理删除功能,并且想要它,以便每当我按下删除按钮时,都会弹出一个确认框,然后如果按下“确定”,它会删除该行并发送一个删除查询,将其从数据库中删除。
我知道我要使用 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 () {
});
}
删除.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());
}
?>
【问题讨论】:
-
这看起来你在正确的轨道上,什么不工作?
-
从外观上看,您在 ajax 中的数据变量没有与您的 $_POST getter 对应的参数。
-
@LoveenDyall 是的,我知道这肯定是个问题,我只是不知道应该去那里
-
无论您如何命名 $_POST 参数,您都应该对相同的参数字符串进行 url_encode。所以数据:“Group_ID=”+i;或类似的东西
标签: javascript php html ajax sql-delete