Удалите данные 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 ответа
- Добавить идентификатор (используя
$row['id']
) к строке div / таблицы (контейнер), в которой находится ваше сообщение. - После завершения 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>