我有一个表,其中包含以下字段:wall_posts
, group_id
, id
和user_id
。
wall_posts
是用户表项,group_id
是从另一个表中导入的,只是一个唯一的组id, id
只是一个简单的计数器,user_id
是从会话中获取用户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);
}
}
谢谢你的帮助!
发送一个简单的ajax post请求就可以达到你想要的效果。cookie是通过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);
所以我是对的,除了Einacio说的,你异步做这个并不意味着什么,但是调用页面而不实际去到那个页面在浏览器中。
因此,删除数据库中条目的PHP页面与通常相同,做它的事情。不同之处在于如何调用它——在本例中使用Einacio发布的函数。这段Javascript调用页面,提交参数,并给出响应(如果有的话)。请访问www.jquery.com,搜索AJAX示例并进行尝试。这并不难。