У меня есть таблица HTML, которая имеет 4 столбца: группа SKU, Group_ID, кнопка «Редактировать» и кнопка «Удалить». Теперь я работаю над функцией удаления и хочу, чтобы всякий раз, когда я нажимаю кнопку «Удалить», появляется окно с подтверждением, а затем, если нажата «ОК», она удаляет строку и отправляет запрос удаления, который удаляет его из базы данных.Удалить таблицу строк при нажатии кнопки с помощью Ajax
Я знаю, что я должен использовать Ajax и отдельный PHP-скрипт для запроса на удаление, но не могу понять, как это понять. Любая помощь приветствуется!
HTML для кнопки Delete:
<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- может-я-предотвращать-SQL-инъекции-в-PHP) ***. Даже [избегая строки] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) небезопасно! –
Похоже, вы на правильном пути, что не работает? –
Ваша переменная данных в ajax не имеет параметров, соответствующих вашим гейтерам $ _POST от внешнего вида вещей. –