我需要在此方面的帮助,基于我已经做到的:每次单击数据库中显示的行(注释(时,输出中。但是我希望,如果我单击下一个按钮,它将在数据库中显示行(注释(,当我再次单击它时,它将在数据库中删除上一行(注释(并显示下一个行(注释(。
这是代码:
<?php
include 'dbh.php';
$commentNewCount = $_POST['commentNewCount'];
$sql = "SELECT * FROM comments LIMIT $commentNewCount";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
echo $row['id'];
}
} else {
echo "There are number!";
}
?>
这是用于按钮:
<script>
//jQuery code here!
$(document).ready(function() {
var commentCount = 0;
$("button").click(function() {
commentCount = commentCount + 1;
$("#comments").load("load-comments.php", {
commentNewCount: commentCount
});
});
});
</script>
您在问题中标记了Ajax,因此我假设您对该术语有些熟悉。这确实可以由Ajax完成,但是我看不到您的代码中的任何Ajax尝试?
另外,当您说 delete 时,您是指从字面意义上说明 delete ,还是简单地说,您的评论显示可作为滑动功能,删除展示中的先前评论,在队列中显示 Next 评论?在我的示例中,我从字面意义上讲,因为那是我必须真正假设的。
您能做的就是拥有一个处理所有注释的文件,并随心所欲地显示它们。例如,
<?php
$sql="SELECT * FROM comments ORDER BY id DESC";
$result_set=mysqli_query($conn, $sql);
while ($row=mysqli_fetch_assoc($result)) {
/*
html construction of displaying comments,
echo'ing the row value that displays the comments.
echo $row['comments']; as a guess
*/
}
?>
让我们称之为php file comment.php ,以稍后引用。另请注意,我选择以降序制作ORDER BY
。假设您的注释ID 是自动增量,那么这将始终首先显示最新评论,因为最高的 id的将是最新的条目。
然后,在另一个文件中, display-comments.php 为例,您可以制作文档。dready功能,将您的注释加载到一个元素中,例如<div>
元素。
Ajax功能看起来像这样:
$( document ).ready(function() {
function loadCommentsAjax()
{
$.ajax({
type : "POST",
url : "comments.php",
data : { },
success: function (html) {
$("#commentContainer").html(html);
}
})
}
});
我在这里做的是,我将AJAX函数封装在document.ready
函数中。这样做的是,当文档准备就绪时,它会启动Ajax函数。
AJAX函数的工作原理是我们声明数据类型。最常见的可能是POST
和GET
。您可以查找不同的数据类型,如何处理它们以及它们的含义。例如,POST
和GET
之间的主要区别在于,GET
在URL中显示其值为参数。由于我们没有解析任何数据,因此我们可以使用GET
可以很好,因为它没有影响。但是,如果您需要分析敏感数据,而您不希望用户与数据混合,则应使用POST
。
然后,我们告诉AJAX函数,它应该使用哪个页面/文件。在我们的示例中,它将是我们之前创建的 comment.php 。然后,它将在成功函数中,将HTML内容粘贴到我们定义的容器中。在这种情况下, commentcontainer 。请注意,这是一个 id 特定的目标,这意味着我们的容器元素需要具有特定的 id 。请注意,该容器在我们的主文件中, display-comments.php 文件。
容器的一个示例可能是以下内容:
<div id="commentContainer"></div>
然后,此DIV元素将包含我们在 comment.php file。
的注释和HTML逻辑。在您的按钮中,您可以使用另一个Ajax函数,处理评论删除,并在成功方面致电我们的 loadCommentsajax((功能,以适当的方式重新加载我们的评论。
处理注释删除的AJAX函数将再次具有将执行删除的PHP文件。我们将在我们的示例中称为 delete-comments.php 。
我们删除ajax函数的示例:
function deleteNewestComment() {
$.ajax({
type : "POST",
url : "delete-comments.php",
data : { },
success: function (html) {
loadCommentsAjax();
}
})
}
我们的delete-comments.php看起来像这样:
<?php
/*
since you are deleting the latest entry each time, what we could do,
is make an SQL query that deletes the max id from the comments table
*/
$sql="DELETE FROM comments WHERE id=(SELECT max(id) FROM comments)";
$result=mysqli_query($conn, $sql);
?>
然后,我们将按下按钮调用删除函数,例如:
<button onclick="deleteNewestComment();">Delete latest comment</button>
让我知道这是否是您正在寻找的内容,还是您真的想要一种滑动的逻辑,您只是在其中迭代您的评论,一次显示一个逻辑。
但是,如果您确实是指字面上的 delete ,那么将删除按钮链接到每个注释会更好,以便您可以独立删除它们?