Удалить данные из БД по кнопке
Строки из бд выводятся в таблицу на странице. Так же для каждой строки добавляется кнопка "Удалить". Ну собственно понятно, что должна удаляться запись с соответствующим id.
Формирование таблицы:
<?php
$zayavki=DB::select('select * from zayavkas where id_user=?',[Auth::user()->id]);
foreach ($zayavki as $zayava)
{
echo "<tr>";
$arr1=explode(' ',$zayava->created_at);
session(['key1' => $zayava]);
echo "<td>$arr1[0]</td>";
echo "<td>$zayava->cost руб.</td>";
echo "<td>$zayava->status</td>";
echo "<td><a href='/profile/page/{$zayava->id}'>Просмотреть</a></td>";
echo "<td><a style='font-weight:bold; color:#ff6666; cursor: pointer' onclick='deleteRow(this)'>Удалить</a></td>";
echo "</tr>";
}
?>
Скрипт для удаления строчки на странице:
function deleteRow(r)
{
var i=r.parentNode.parentNode.rowIndex;
document.getElementById('myTable').deleteRow(i);
}
$(document).ready(function() {
$("input.inpdelete").change(function() {
$.ajax({
url: "/profile/" + $(this).children("input").val(),
method: 'get',
data: {
value: $(this).children("input").val()
}
});
});
});
<input hidden value='{$zayava->id}' name='inpdelete' id='inpdelete'/>
Сейчас получается, что при клике "Удалить" строка из таблицы удаляется только на странице (после обновления разумеется появляется опять). Как сделать, чтобы удалялась и из базы данных тоже?
Ответы (1 шт):
Автор решения: Евгений Мишанин
→ Ссылка
Сделать к примеру ajax запрос на сервер, где будет функция которая по id записи будет ее удалять. Сейчас вы удаляете ее только на стороне браузера, логично что ничего в базе данных не происходит
<?php
$zayavki=DB::select('select * from zayavkas where id_user=?',[Auth::user()->id]);
foreach ($zayavki as $zayava) {
echo "<tr>";
$arr1=explode(' ',$zayava->created_at);
session(['key1' => $zayava]);
echo "<td>$arr1[0]</td>";
echo "<td>$zayava->cost руб.</td>";
echo "<td>$zayava->status</td>";
echo "<td><a href='/profile/page/{$zayava->id}'>Просмотреть</a></td>";
echo "<td><button data-id={$zayava->id} style='font-weight:bold; color:#ff6666; cursor: pointer' class='delete'>Удалить</button></td>";
echo "</tr>";
}
?>
$(document).ready(function() {
$(".delete").click(function() {
let id = $(this).attr('data-id');
$.ajax({
url: `/zayava/delete/${id}`
method: 'post',
data: {
id: id
},
success: function(result) {
$(this).closest('tr').remove()
}
});
});
});