我已经成功编写了一个简单评论系统,其形式为2个字段:name和comment。当用户间值并按下提交时,只需使用Ajax将注释添加到当前页面(不加载整个页面)。
现在,我还需要添加“删除评论”的功能,但我不知道如何实现它。
如果你看一下我的代码,你会注意到在加载页面时我打印了所有现有的注释,当添加新的注释时,我只是通过这个子代码将它们添加到HTML代码中:
document.getElementById("result").innerHTML += "<font color='red' size='5'>" + str + "</font>";;
我想要声明一个数组,该数组包含所有注释的值,每个注释的值为“active”。 当这个值是真的,我打印当前的评论,否则我不。
我没有成功实现这一点,此外,它是一个很好的解决方案吗? 因为每次用户按下提交时,此解决方案都会再次打印所有注释。
有什么建议吗?
感谢您的帮助。
这是我的代码:
main.php
<html>
<head>
<title> </title>
<script language="Javascript" src="ajax.js"> </script>
</head>
<body>
<h1 align="center"><font color="#000080">Welcome, </font></h1>
<p align="center"><font color="#000080">Enter your name & comment then press
"Submit Button"</font></p>
<form name="f1" method="post">
<p align="center"><font color="#000080">
Enter your name: <input type="text" name="username" id="username">
<font color="#000080">
Enter your comment: <input type="text" name="comment" id="comment">
<input value="Submit" type="button"
onclick='JavaScript:postRequest()' name="showdate"></font></p>
</form>
</br></br>
<?php
include_once("config.php");
$query = "SELECT * FROM `comments` ORDER BY 'id'";
//Execute query
$qry_result = mysql_query($query) or die(mysql_error());
// Insert a new row in the table for each person returned
while($row = mysql_fetch_array($qry_result)){
echo ' <p align="center">';
echo "<font color='red' size='5'> name: </br>".$row['added_by'];
echo " </br>comment: </br>".$row['comment'];
echo "</font></p>";}
?>
<div id="result" align="center"> </div>
</body>
</html>
名称:'。$ name; echo'comment:'。$ content; 回声'' ?&GT;showcomments.php
ajax.js
function postRequest() {
var xmlHttp;
try{
// Opera 8.0+, Firefox, Safari
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer Browsers
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
var usr=window.document.f1.username.value;
var cmnt=window.document.f1.comment.value;
var url = "showcomments.php?username=" + usr +"&comment=" + cmnt;
xmlHttp.open('GET', url, true);
xmlHttp.setRequestHeader
('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.onreadystatechange =function(){
if(xmlHttp.readyState == 4){
updatepage(xmlHttp.responseText);
}
}
xmlHttp.send(url);
}
function updatepage(str){
document.getElementById("result").innerHTML +=
"<font color='red' size='5'>" + str + "</font>";;
}
(P.S:我使用名为“comments”的MySql创建了一个表,其中包含以下列:Id,Added_by,comment。)
答案 0 :(得分:0)
我不仅会打印PHP文件中的名称和注释,还会打印一个包含ID的隐藏字段的表单。或者,更好的是,带有onClick =“deleteComment(ID)”的按钮。更重要的是:将每个评论放在带有ID的p-tag中,id = comment-id。你的main.php PHP文件将扩展为:
while($row = mysql_fetch_array($qry_result)){
echo ' <p align="center" id="'.$row['id'].'>';
echo "<font color='red' size='5'> name: </br>".$row['added_by'];
echo " </br>comment: </br>".$row['comment'];
echo "</font></p>";}
这个(ajax)函数deleteComment(ID)然后将要删除的注释的ID发送到另一个PHP脚本。这会将其从数据库中删除。
现在您有两个选择:您可以通过它的ID删除页面上的p-tag(使用带有$('IDofP')函数的jQuery非常容易。空();)或者您重新加载所有注释