Javascript 使用PHP和AJAX加载更多注释按钮
我正在开发一个视频评论系统,但不知道如何让“加载更多”按钮工作。到目前为止,我的控制台没有显示任何错误,但也没有发生任何事情。我已经检查了我的PHP脚本,看起来一切正常,我没有从中得到任何错误 我仍然对JavaScript非常不熟悉,所以我认为问题在某个地方。有经验的人能看一下并向我解释一下我哪里出了问题吗 视频评论部分:Javascript 使用PHP和AJAX加载更多注释按钮,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在开发一个视频评论系统,但不知道如何让“加载更多”按钮工作。到目前为止,我的控制台没有显示任何错误,但也没有发生任何事情。我已经检查了我的PHP脚本,看起来一切正常,我没有从中得到任何错误 我仍然对JavaScript非常不熟悉,所以我认为问题在某个地方。有经验的人能看一下并向我解释一下我哪里出了问题吗 视频评论部分: <div class="comments-display"> <?php //Get Comments from
<div class="comments-display">
<?php
//Get Comments from db
$get_comments = db::getInstance()->query("SELECT * FROM video_comments WHERE video_id = ? LIMIT 0, {$resultsPerPage}", array($vid_id));
if(!$get_comments->results()){ ?>
<div class="comment-body">
<p class="text-center">No Comments....</p>
</div>
<?php
} else {
foreach ($get_comments->results() as $comment) { ?>
<div class="comment-header">
<?php echo $comment->username . ' | ' . $comment->added; ?>
</div>
<div class="comment-body">
<p><?php echo $comment->comment; ?></p>
</div>
<?php
$x++;
}
if($x == $resultsPerPage) {
?>
<li class="loadbutton"><button class="loadmore" data-page="2">Load More</button></li>
<?php
} else {
echo 'no more comments';
}
}
?>
</div>
无评论
加载更多
Ajax请求:
<script type="text/javascript">
$( document ).on( 'click', '.loadmore', function () {
$(this).text('Loading...');
var btn = $(this).parent('li');
$.ajax({
url: 'load.php',
type: 'POST',
data: {
page:$(this).data('page'),
},
success: function(response){
if(response){
btn.hide();
$(".comments-display").append(response);
} else {
alert("error");
}
}
});
});
</script>
$(文档).on('单击','.loadmore',函数(){
$(this.text('Loading…');
var btn=$(this.parent('li');
$.ajax({
url:'load.php',
键入:“POST”,
数据:{
页码:$(this).data('page'),
},
成功:功能(响应){
如果(答复){
隐藏();
$(“.comments display”).append(响应);
}否则{
警报(“错误”);
}
}
});
});
Load.php
if(isset($_POST['page'])){
$vid_id = 123;
$paged = 2;
$resultsPerPage = 6;
$x = 0;
if($paged>0){
$page_limit = $resultsPerPage*($paged-1);
$query = "LIMIT {$page_limit}, {$resultsPerPage}";
}else{
$query = " LIMIT 0 , {$resultsPerPage}";
}
$comments = db::getInstance()->query("SELECT * FROM video_comments WHERE video_id = ? {$query}", array($vid_id)); ?>
<div id="comments_post" class="comments-display">
<?php
foreach ($comments->results() as $comment) { ?>
<div class="comment-header">
<?php echo escape($comment->username) . ' | ' . $comment->added;
</div>
<div class="comment-body">
<p><?php echo escape($comment->comment); ?></p>
</div>
<?php
$x++;
}
if($x == $resultsPerPage) {
?>
<button class="loadmore" data-page="2">Load More</button>
<?php
} else {
echo '<h6 class="font-6 text-center pk-blue"> No more Comments! </h6>';
}?>
</div>
<?php
}
if(isset($\u POST['page'])){
$vid_id=123;
$paged=2;
$resultsPerPage=6;
$x=0;
如果($paged>0){
$page_limit=$resultsPerPage*($paged-1);
$query=“LIMIT{$page\u LIMIT},{$resultsPerPage}”;
}否则{
$query=“限制0,{$resultsPerPage}”;
}
$comments=db::getInstance()->query(“从video_comments中选择*,其中video_id=?{$query}”,数组($vid_id));?>
加载更多
修好了
<div id="comments_post" class="comments-block">
<div class="comments_display">
<?php
$get_comments = db::getInstance()->query("SELECT * FROM video_comments WHERE video_id = ? ORDER BY added DESC LIMIT 0, {$resultsPerPage}", array($vid_id));
if(!$get_comments->results()){ ?>
<div class="comment-header">
</div>
<div class="comment-body">
<p class="text-center">No Comments....</p>
</div>
<?php
} else {
foreach ($get_comments->results() as $comment) { ?>
<div class="comment-header">
<?php echo $comment->username . ' | ' . $comment->added;
if ($user->data()->user_id == $comment->user_id OR $user->hasPermission('admin')) { ?>
<i id="<?php echo $comment->id; ?>"class="fa fa-trash-o onl-link-icon text-right del-com" title="delete comment?"></i>
<?php
} ?>
</div>
<div class="comment-body">
<p><?php echo $comment->comment; ?></p>
</div>
<?php
$x++;
}
if($x == $resultsPerPage) {
?>
<div class="loadbutton"><button class="loadmore" data-page="2">Load More</button></div>
<?php
} else {
echo 'no more comments';
}
}
?>
</div>
</div>
$( document ).on( 'click', '.loadmore', function () {
$(this).text('Loading...');
var btn = $(this).parent();
$.ajax({
url: 'load.php',
type: 'POST',
cache: false,
data: {
page:$(this).data('page'),
},
success: function(response){
if(response){
btn.hide();
$(".comments-block").append(response);
}
}
});
});
无评论
$(文档).on('单击','.loadmore',函数(){
$(this.text('Loading…');
var btn=$(this.parent();
$.ajax({
url:'load.php',
键入:“POST”,
cache:false,
数据:{
页码:$(this).data('page'),
},
成功:功能(响应){
如果(答复){
隐藏();
$(“.comments block”).append(响应);
}
}
});
});
按钮文本是否更改为“加载…”?您的控制台是否返回任何内容?您的查询是否在load.php
中启动?您是否检查了该问题?您是否检查了控制台中的$.ajax()
响应?escape($comment->username)
哪里定义了escape()
?您是否验证了if(isset($_POST['page']){
正在满足?应该满足,但仍要检查(添加一个else{}
,以便它返回一些内容)。db::getInstance()
在哪里定义?是否包含了连接文件?是否在下面添加jQuery的位置包含了脚本标记?是否正在添加jQuery,对吗?@LouisShiggyLombardi如果按钮没有更改,那么AJAX也不会被调用,所以问题就出在那里。如果控制台中没有JS错误,那么这就需要解决了h您的选择器,但如果有错误,那么应该为您指明正确的方向。@LouisShiggyLombardi-如上所述,您不会得到任何ajax,因为您的事件处理程序函数甚至没有启动..在您担心ajax之前,请关注这一点..再次..您包括jQuery吗?在哪里?