У меня есть 4 столбец таблицы в моей программе с одним из столбцов столбца с кнопкой удаления для каждой строки. Всякий раз, когда я нажимаю кнопку «Удалить», я хочу, чтобы она удалила соответствующую строку и отправила запрос удаления через AJAX, который удаляет эту строку в базе данных.Удаление правильной строки на кнопке Нажмите
Что происходит сейчас, когда я нажимаю кнопку «Удалить», он удаляет строку над ней или удаляет верхнюю строку, где над ней нет строки, она вообще не удаляется, что я не хочу.
У меня нет ошибок в моей консоли. Я получаю сообщение row deleted
каждый раз, хотя хотя.
Так как я могу исправить эту проблему и заставить ее работать, чтобы удалить строку, соответствующую тому, где находится кнопка?
HTML для таблицы вместе с кнопкой удаления:
<table id="skuTable" cellspacing="5" class="ui-widget ui-widget-content">
<thead>
<tr class="ui-widget-header">
<th class="skuRow">SKU Group</th>
<th class="skuRow">Group ID</th>
<th class="skuRow">Edit</th>
<th class="skuRow">Delete</th>
</tr>
</thead>
<tbody>
<?php foreach ($dbh->query($query) as $row) {?>
<tr>
<td class="sku_group" id="sku_group-<?php echo intval ($row['SKU Group'])?>"><?php echo $row['SKU Group'];?></td>
<td class="group_id" align="center" id="group_id-<?php echo intval ($row['Group_ID'])?>"><?php echo $row['Group_ID'];?></td>
<td><button type="button" class="edit" name="edit">Edit</button></td>
<td><button type="button" class="delete" onclick="deleteRow(this)">Delete</button></td>
</tr>
<?php } ?>
</tbody>
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: "Group_ID="+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="xxxxxxxxxx";
$dbName="xxxxxx";
$dbUser="xxxxxxxxxxxx";
$dbPass="xxxxx";
$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 sqlsrv_errors();
}
?>
есть, вероятно, не хватает HTML в вопрос.Если вы используете форму для этого или не рассматривали как массив, для него может быть скрытый элемент (строка), который часто используется. –
Я отправил HTML-код для таблицы, в которую включена кнопка удаления, если это вообще помогает ... Я использую форму в своей программе, но она не включает таблицу, поскольку она имеет дело с функцией поиска – Rataiczak24
у вас есть id = "group_id' с' group_id' в нижнем регистре, но с использованием 'data:" Group_ID = "+ i' с' Group_ID' в смешанном случае. Звучит для меня так, как будто это проблема, или способный. Буквенный регистр должен совпадать. –