【发布时间】:2014-01-14 17:47:38
【问题描述】:
我用 php 为我的博客创建了一个评论回复系统。评论存储在一个名为 cmets(cmets_id, comment, comment_date, user, flag) 的表中。我使用了一个显示 cmets 的脚本,并且在每个评论附近都有一个名为“delete”的链接,以便用户删除自己的评论以防万一。
我用于显示 cmets 的 php 脚本是:
<?php
// ... above code
$comments .= $row['comment']; // comment printed succesfully here
if($comment_user_id == $session_user_id){
$comments .="<table border='1' style='display:inline-table;'><td><h2><font size='2'>
<form action='deletepost.php' method='post'>
<input type='hidden' name='var' value='$comment_id;'>
<input type='submit' value='delete'>
</form>
</h2></font></td></table>";
}
?>
为了删除评论,我更新了表 cmets 并设置了 flag=1,因此我的脚本不会在表中显示其 flag=1 的 cmets。为了做到这一点,我使用脚本 deletepost.php
<?php
$comment = mysql_real_escape_string($_POST['var']);
if(isset($comment) && !empty($comment)){
mysql_query("UPDATE `comments` SET `flag`=1 WHERE (`user`='$session_user_id' AND `comments_id`='$comment')");
header('Location: wall.php');
}
?>
到目前为止,我的脚本完美无缺,发表评论的用户可以删除自己的评论而不会出现任何错误。当我决定在 javascript 中插入一个灯箱时,问题就开始了,这样在删除评论之前会询问用户。所以我将我的第一个脚本更改为以下内容:
<?php
// ... above code
$comments .= $row['comment']; // comment printed succesfully here
if($comment_user_id == $session_user_id){
$comments .="<table border='1' style='display:inline-table;'><td><h2><font size='2'>
// at this point problem occurs when inserting javascript lightbox
<a href = javascript:void(0) onclick = document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'><h2><font color=green size=3>Delete All</font></h2></a>
<div id=light class=white_content>DELETE THIS COMMENT?
<form action='deletepost.php' method='post'>
<input type='hidden' name='var' value='$comment_id;'>
<input type='submit' value='delete'>
</form>
<a href = javascript:void(0) onclick = document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'><div id=pading><button>Cancel</button></div></a></div>
<div id=fade class=black_overlay></div>
</h2></font></td></table>";
}
?>
通过使用如上所示的javascript灯箱,当用户按下删除时,灯箱会启动并询问用户是否要删除评论。问题是现在当用户按下删除按钮时,它不是删除某个评论,而是在 cmets 表 中找到的最后一条评论。可能我需要在我的 javascript 中编写其他内容来更正此问题,以便知道要删除哪个评论(将其标志设置为 1)。知道如何解决吗?
【问题讨论】:
标签: javascript php