Удаление сообщений пользователя с помощью кнопки удаления - PullRequest
0 голосов
/ 04 августа 2011

У меня есть таблица со следующими полями: wall_posts, group_id, id и user_id.

wall_posts - это записи пользователя, group_id импортируется из другой таблицы и является просто уникальным идентификатором группы, id - просто счетчик, а user_id получает идентификатор пользователя из сеанса.

Мой код избавляется от всех wall_posts, если вы нажимаете кнопку удаления, сравнивая идентификатор пользователя с пользователем в сеансе. Теперь я не хочу перенаправлять на другую страницу php для удаления. Так что использование URL просто не вариант. Прямо сейчас эта треска просто удаляет самые новые сообщения. Например, если я нажму на кнопку удаления в сообщении с id = 10, а последнее сообщение будет иметь id = 12. Он просто удаляет запись с id = 12, а затем повторное нажатие кнопки удаления приводит к удалению записи с id = 11 и так далее. Думаю, хороший пример того, что я пытаюсь сделать, - это как вы удаляете ленту новостей или комментарий на своей странице в Facebook.

Вот код:

    if (isset($_POST['delete'])) {
    $current_user = $_SESSION['user_id'];
    $result = mysql_query("SELECT * FROM group_posts");
    while ($delete = mysql_fetch_array($result)) {
        $group_user_id = $delete['user_id'];
        $post_id = $delete['id'];
    }
    if ($current_user == $group_user_id) {
    $sql = sprintf("DELETE FROM group_posts WHERE id = %d", $post_id);
    mysql_query($sql);
    }

}

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 05 августа 2011

Итак, я правильно понял, в дополнение к тому, что сказал Эйнасио, вы делаете это асинхронно, не означает ничего, кроме вызова страницы без фактического перехода на эту страницу в браузере.

Таким образом, ваша страница PHP, которая удаляет записи в базе данных, является той же самой страницей, как обычно, и делает свое дело. Разница в том, как вы это называете - в этом случае с помощью функции Einacio. Этот фрагмент Javascript вызывает страницу, передает параметр и дает вам ответ, если таковой имеется. Перейдите на сайт www.jquery.com, найдите примеры AJAX и опробуйте их. Это не так сложно.

0 голосов
/ 04 августа 2011

отправляя простой почтовый запрос ajax, вы можете достичь именно того, что вы хотите.куки отправляются в ajax, поэтому $ _SESSION будет обычно доступен

, используя jquery для сокращения ajax:

$('#btnDelete').click(function(){$.post('#',{delete:1});});

добавьте третий параметр в $ .post (), чтобы сделать что-то после завершения php

, чтобы удалить все записи, просто переместите второй блок if внутри блока while.я бы изменил весь процесс на

mysql_query("delete from group_posts where user_id= ".$current_user);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...