Javascript/AJAX 想要从留言簿条目中删除 html 类

标签 javascript php html sql ajax

我正在用 JS 和 Ajax 为我的大学项目写一本留言簿。我已经可以发布留言簿条目了。现在我的问题是我不知道如何再次删除它们。

我的 PHP 文件看起来像这样

<?php
###########################################################
/*
Developer:   Not Important
Version:  	 1.0
Release:  	 08.12.2014
*/
###########################################################

error_reporting(0);
include("config.php");

if ($_REQUEST["do"]=='add') {
	
	$sql = "INSERT INTO ".$SETTINGS["data_table"]." SET date_time=now(), name='".mysql_real_escape_string($_REQUEST["name"])."', email='".mysql_real_escape_string($_REQUEST["email"])."', comment='".mysql_real_escape_string($_REQUEST["comment"])."'";
	$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);

}

?>

</div>
<form id="GuestBookFrm" name="GuestBookFrm" onsubmit="return false;">
<table width="100%" border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td colspan="2"><strong>Gästebuch Eintrag schreiben</strong></td>
    </tr>
  <tr>
    <td>Name</td>
    <td><label>
      <input type="text" name="your_name" id="your_name" />
    </label></td>
  </tr>
  <tr>
    <td>Email</td>
    <td><input type="text" name="email" id="email" /></td>
  </tr>
  <tr>
    <td>Kommentar</td>
    <td><label>
      <textarea name="comment" id="comment" rows="5"></textarea>
    </label></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><label>
      <input type="button" name="button" id="button" value="Senden" onclick="SubmitComment()" />
	  <input type="reset" name="reset" id="reset" value="Reset" />
    </label></td>
  </tr>
</table>
</form>

<div id="Comments">

<?php
$sql = "SELECT * FROM ".$SETTINGS["data_table"]." ORDER BY id DESC";
$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);
while ($row = mysql_fetch_assoc($sql_result)) {
	echo "<div><ul><li><h2>".stripslashes($row["name"])."</h2></li>";
	echo "<li><span>gepostet am ".$row["date_time"]."</span><a class=\"delete\" href=\"#\">Löschen</a> <a class=\"edit\" href=\"#\">Editieren</a></li>";
	echo "<li><p>".stripslashes(nl2br($row["comment"]))."</p></li></ul></div>";
}
?>

我的 Javascript 看起来像这样:

var bustcachevar=1; //bust potential caching of external pages after initial request? (1=yes, 0=no)
var bustcacheparameter="";

function createRequestObject(){
	try	{
		xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
	}	catch(e)	{
		alert('Sorry, but your browser doesn\'t support XMLHttpRequest.');
	};
	return xmlhttp;
};

function ajaxpage(url, containerid){
	var page_request = createRequestObject();
	
	if (bustcachevar) bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
	page_request.open('GET', url+bustcacheparameter, true)
	page_request.send(null)

	page_request.onreadystatechange=function(){
		loadpage(page_request, containerid)
	}

}

function loadpage(page_request, containerid){
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)) {
	    document.getElementById(containerid).innerHTML=page_request.responseText;
	};
}


function LoadComments() {
	ajaxpage("guestbook.php", "GuestBook");
}

function SubmitComment() {
	if (document.GuestBookFrm.your_name.value !== '' && document.GuestBookFrm.email.value !== '' && document.GuestBookFrm.comment.value !== '') {
		ajaxpage("guestbook.php?do=add&name=" + encodeURI(document.GuestBookFrm.your_name.value) + "&email=" + encodeURI(document.GuestBookFrm.email.value) + "&comment=" + encodeURI(document.GuestBookFrm.comment.value), "GuestBook");
	} else {
		alert ("Fill in all fields.");
	}
	
}

LoadComments();

我的 SQL 数据库看起来很简单:

CREATE TABLE IF NOT EXISTS `guestbook` (
  `id` int(11) NOT NULL auto_increment,
  `date_time` datetime NOT NULL,
  `name` varchar(250) NOT NULL,
  `email` varchar(250) NOT NULL,
  `comment` text NOT NULL,
  PRIMARY KEY  (`id`)
)

正如你在我的 php 文件中看到的,有一行

echo "<li><span>gepostet am ".$row["date_time"]."</span><a class=\"delete\" href=\"#\">Löschen</a> <a class=\"edit\" href=\"#\">Editieren</a></li>";

其中有一个删除和一个编辑按钮,其中包含“删除”类和“编辑”类。现在,我几天来一直在努力使其能够再次删除留言簿条目。我是否要删除不需要任何确认。我只需点击删除,然后它就会消失。

有人可以提供任何代码来帮助我使其工作吗?

致以诚挚的问候

最佳答案

思考您的代码需要执行的删除步骤:

  1. 需要捕获删除按钮的点击事件
  2. 在客户端代码上,您需要向服务器发送 AJAX 调用以请求删除
  3. 在服务器代码中,您需要识别此 AJAX 调用、构建 DELETE 语句并执行它。
  4. DELETE 语句的结果应向您的客户端代码返回结果值
  5. 根据收到的响应,您的客户端代码应该返回一条有关删除错误的消息警告,或者从页面的 DOM 中删除最近删除的元素。

尝试将每一项任务分开,看看您是否知道如何完成每一项任务。如果您不知道如何执行其中任何操作,或者对任何人有疑问,请在此网站中询问具体问题。

我希望这会有所帮助。

关于Javascript/AJAX 想要从留言簿条目中删除 html 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27564262/

相关文章:

JavaScript 输入阿拉伯字母验证

PHP foreach 循环返回一个额外的不需要的数组(维基百科 API)

php - multi_query() 有错误

javascript - 将 Javascript 数组返回到隐藏的输入值

html - 使用 flexbox 以每个元素的最小宽度在网格中定位未知数量的元素

javascript - RequireJS 和类继承

javascript - 在选定的选项卡上加载内容(基础)

Javascript 语法错误...我怎样才能找到更多信息?

javascript - innerHTML 和 <embed> 怎么了?

javascript - Joomla - 电子邮件地址作为输入值