使用删除按钮删除用户帖子

时间:2011-08-04 14:04:07

标签: php mysql ajax

我的表格包含以下字段:wall_postsgroup_ididuser_id

wall_posts是用户条目,group_id是从另一个表导入的,只是一个唯一的组ID,id只是一个简单的计数器,user_id获取用户来自会议的身份证。

如果您通过将用户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 :(得分:0)

发送一个简单的ajax帖子请求你可以完全达到你想要的效果。 cookie在ajax上发送,因此$ _SESSION通常是可访问的

使用jquery缩写ajax:

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

在$结束后添加第三个paremeter到$ .post()以执行某些操作

尊重删除所有记录,只需在while块内移动第二个if块。我将整个过程改为

mysql_query("delete from group_posts where user_id= ".$current_user);

答案 1 :(得分:0)

所以我做对了,除了Einacio所说的,你异步做这件事并不意味着什么,只是调用页面而不实际在浏览器中访问该页面。

因此,删除数据库中条目的PHP页面与往常一样,就是这样。不同之处在于你如何称呼它 - 在这种情况下是Einacio发布的功能。这段Javascript调用页面,提交参数并给出响应(如果有的话)。访问www.jquery.com并搜索AJAX示例并试用它们。这并不困难。