Javascript 使用PHP和AJAX加载更多注释按钮

Javascript 使用PHP和AJAX加载更多注释按钮,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在开发一个视频评论系统,但不知道如何让“加载更多”按钮工作。到目前为止,我的控制台没有显示任何错误,但也没有发生任何事情。我已经检查了我的PHP脚本,看起来一切正常,我没有从中得到任何错误 我仍然对JavaScript非常不熟悉,所以我认为问题在某个地方。有经验的人能看一下并向我解释一下我哪里出了问题吗 视频评论部分: <div class="comments-display"> <?php //Get Comments from

我正在开发一个视频评论系统,但不知道如何让“加载更多”按钮工作。到目前为止,我的控制台没有显示任何错误,但也没有发生任何事情。我已经检查了我的PHP脚本,看起来一切正常,我没有从中得到任何错误

我仍然对JavaScript非常不熟悉,所以我认为问题在某个地方。有经验的人能看一下并向我解释一下我哪里出了问题吗

视频评论部分:

<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吗?在哪里?