Удалите данные MySQL с помощью php через ajax и jquery, покажите страницу без удаленных данных - PullRequest
0 голосов
/ 11 марта 2011

У меня есть эта ссылка (показано ниже). При щелчке он отправляет идентификатор сообщения в файл 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 ]

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

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

javascript:$.post('delete_post.php', { id: '$row[id]' } , function(){ $('#row$row[id]').hide(); });
0 голосов
/ 11 марта 2011

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

0 голосов
/ 11 марта 2011

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

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