Удалить данные из БД по кнопке

Строки из бд выводятся в таблицу на странице. Так же для каждой строки добавляется кнопка "Удалить". Ну собственно понятно, что должна удаляться запись с соответствующим 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()
            }
        });
    });
});
→ Ссылка