Удалите данные MySQL с помощью php через ajax и jquery, покажите страницу без удаленных данных

У меня есть эта ссылка (показано ниже). При щелчке он отправляет идентификатор сообщения в файл PHP с именем delete_post.php, который, в свою очередь, удаляет сообщение с этим идентификатором из моей базы данных MySQL. Это прекрасно работает, за исключением того, что после удаления поста он по-прежнему отображается на странице, пока не будет обновлен. Как сделать так, чтобы сообщение удалялось со страницы сразу после нажатия на ссылку, а не после того, как я щелкнул по ссылке и после обновления страницы.

<a href="javascript:$.post('delete_post.php', { id: '$row[id]' } );" class='delete_post' title='delete post'>delete post</a>

3 ответа

Решение
  1. Добавить идентификатор (используя $row['id']) к строке div / таблицы (контейнер), в которой находится ваше сообщение.
  2. После завершения AJAX вы просто скрываете контейнер.

Чтобы скрыть контейнер после завершения AJAX, просто измените ваш $.post добавив функцию обратного вызова, как это:

javascript:$.post('delete_post.php', { id: '$row[id]' } , function(){ $('#row$row[id]').hide(); });

Я не знаком с кодом jQuery (я мог бы сделать это в Prototype, если вам нужен пример), но вы должны прикреплять слушателей к ссылкам, а не вызывать встроенный AJAX. Таким образом, вы можете использовать функции обхода DOM в jQuery, чтобы перейти к родительскому div или строке таблицы и просто просто .remove() получить его после получения успешного ответа от вашего вызова AJAX.

В функции post() есть необязательный третий параметр, который позволяет вам создавать анонимную функцию, которая выполняется в случае успеха.

<a href="javascript:$.post('delete_post.php', { id: '$row[id]' }, function() { location.reload(); } );" class='delete_post' title='delete post'>delete post</a>
Другие вопросы по тегам