我已经成功编写了一个简单的评论系统,它有两个字段:名称和评论。当用户输入值并按下提交时,它只需使用 Ajax 将评论添加到当前页面(不加载整个页面)。
现在,我还需要添加“删除评论”的能力,但我不知道如何实现。
如果您查看下面的代码,您会注意到在加载页面时我打印了所有现有评论,而在添加新评论时,我只是通过以下子代码将它们添加到 HTML 代码中:
document.getElementById("result").innerHTML += "<font color='red' size='5'>" + str + "</font>";;
我想声明一个数组来保存所有评论的值,并为每个“活动”的评论添加一个附加值。当这个值为真时,我打印当前评论,否则我不打印。
此外,我还没有成功实现这一点,这是一个好的解决方案吗?因为每次用户按下提交时,此解决方案都会重新打印所有评论。
有什么建议么?
我会很感激你的帮助。
这是我的代码:
主文件
<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 '评论:' .$content; 回声''?>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>";;
}
(PS:我使用 MySql 创建了一个名为“comments”的表,其中包含以下列:Id、Added_by、comment。)