Удалить элемент со страницы после удаления записи из БД через ajax?
Сделал удаление в бд по ajax, само удаление работает, но проблема в том, что удаленная запись остается на странице и исчезает после обновления страницы, но нужно чтобы страница не обновлялась.
Понимаю что нужно на стороне сервера сформировать новые данные из бд и отправить назад, но не понимаю как это сделать, чтобы старые записи на странице исчезли и подгрузились новые, при всех попытках, новые данные просто добавлялись к старым на странице
Сервер:
$userid = $conn->real_escape_string($_POST["id"]); $sql = "DELETE FROM Test WHERE id = '$userid'"; if($conn->query($sql)){ //header("Location: index.php"); // echo json_encode(''); } else{ echo "Ошибка: " . $conn->error; } |
$userid = $conn->real_escape_string($_POST["id"]); $sql = "DELETE FROM Test WHERE id = '$userid'"; if($conn->query($sql)){ //header("Location: index.php"); // echo json_encode(''); } else{ echo "Ошибка: " . $conn->error; }
Ajax:
function delete(id){ $.ajax({ type: "POST", url: "delete.php", data: "id=" + id, dataType: 'json', success: function(response){ result = $.parseJSON(response); }, error: function(response) { $('#result_form').html('Ошибка. Данные не отправлены.'); } }); } |
function delete(id){ $.ajax({ type: "POST", url: "delete.php", data: "id=" + id, dataType: 'json', success: function(response){ result = $.parseJSON(response); }, error: function(response) { $('#result_form').html('Ошибка. Данные не отправлены.'); } }); }
Дополнительно:
Во-первых, к РНР этот вопрос не имеет отношения
Во-вторых, непонятно, зачем что-то "подгружать" если надо всего лишь удалить одну запись
В-третьих, хоть это и не имеет отношения к вопросу, но просто любопытно: какую реакцию от фронтенда вы ждете , отправляя ему echo "Ошибка: " . $conn->error?
на счет $conn->error просто так висит, удалю :)
Почему не спросить ровно то, что вам надо: как сделать так, чтобы элемент удалялся со страницы?
У вас задача удалить один элемент на странице, одну запись. Вот вы ее удалили. Зачем что-то ещё подгружать?!
а не все записи
Ответы:
проблему решили, ответ в комментариях под вопросом, если коротко, то: после удаления думал заново вывести все данные с бд, но нужно было лишь удалить старый html, так как удаление в самой базе уже произошло
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для удаления элемента со страницы после удаления записи из базы данных через ajax, вам необходимо выполнить следующие шаги:
1. На стороне сервера:
- Создайте скрипт на сервере, который будет удалять запись из базы данных по заданному идентификатору.
- Удостоверьтесь, что ваш скрипт возвращает подтверждение об успешном удалении записи.
2. На стороне клиента:
- Напишите функцию JavaScript, которая будет отправлять ajax-запрос на сервер для удаления записи.
- В случае успешного выполнения запроса, удалите элемент со страницы с помощью JavaScript.
Пример кода на стороне сервера (PHP):
true]); } else { echo json_encode(['success' => false]); } ?>
Пример кода на стороне клиента (JavaScript):
function deleteRecord(id) { $.ajax({ url: 'delete.php', type: 'POST', data: {id: id}, success: function(response) { if (response.success) { $('#element-' + id).remove(); // Удаляем элемент со страницы } else { alert('Ошибка при удалении записи'); } }, error: function() { alert('Произошла ошибка при отправке запроса'); } }); }
В данном примере при успешном удалении записи из базы данных, функция deleteRecord будет вызываться с идентификатором удаляемой записи, после чего элемент с id "element-id" будет удален со страницы. В случае ошибки при выполнении запроса или удалении записи, будет выведено соответствующее сообщение.
Не забудьте подключить библиотеку jQuery, если вы ее еще не использовали в проекте.