我的表格包含以下字段:wall_posts
,group_id
,id
和user_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);
}
}
感谢您的帮助!
答案 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示例并试用它们。这并不困难。