繁体   English   中英

自动加载更多信息,请向下滚动,仅加载前2页

[英]Auto Load More on scroll down is loading only first 2 pages

我在页面上向下滚动时自动加载了更多内容。 我的jQuery / ajax工作正常,但在向下滚动时仅自动加载前2页。 页面/记录更多,但是在加载第二页后卡住了。

我不明白这个问题。 有人请帮帮我。 我的PHP和Java代码如下

只是以相同的上下移动线玩耍,但没有用。

<?php
    $pxe    =   $_GET['pname'];
    $sxe    =   $_GET['sname'];
?>

$(document).ready(function(){
        var is_ajaxed = false;
    function getresult(url) {
        $.ajax({
            url: url,
            type: "GET",
            data:  {rowcount:$("#rowcount").val()},
            beforeSend: function(){
            $('#loader-icon').show();
            },
            complete: function(){
            $('#loader-icon').hide();
            },
            success: function(data){
            $("#faq-result").append(data);
            },
            error: function(){}             
       });
    }
    $(window).scroll(function(){
        if ($(window).scrollTop() >= ($(document).height() - $(window).height()-900) && is_ajaxed == false){
            if($(".pagenum").val() <= $(".total-page").val()) {
                var pagenum = parseInt($(".pagenum").val()) + 1;
                var pname = "<?php echo $pgianame; ?>";
                var sname = "<?php echo $stianame; ?>";
                getresult('sellers_forum_page_posts_getresult.php?page='+pagenum+'&pname='+pname+'&sname='+sname);
            is_ajaxed = true
            }
        }
    }); 
});

getresult.php

<?php
include('inc/db.php');

$perPage = 10;
$sql = "SELECT * from posts";
$allrows = $dba3->query($sql);
$allrowscount = mysqli_num_rows($allrows);
$pages  = ceil($allrowscount/$perPage);

$page = 1;
if(!empty($_GET["page"])) {
$page = $_GET["page"];
}
$start = ($page-1)*$perPage;
if($start < 0) $start = 0;

$query =  $sql." limit ".$start.",".$perPage; 
$faq = $dba3->query($query);
if(empty($_GET["rowcount"])) {
$_GET["rowcount"] = mysqli_num_rows($faq);
}
$output = '';
if(!empty($faq)) {
$output .= '<input hidden class="pagenum" value="'.$page.'" />';
$output .= '<input hidden class="total-page" value="'.$pages.'" />';
while ($row = $faq->fetch_assoc()) {
 $output .=  $row["ename"];
} }
print $output;
?>

没有错误,只是加载器映像不断移动

关键是在应用限制之前,从初始sql获取行数,例如:

$perPage = 10;
$sql = "SELECT * from posts";
$allrows = $dba3->query($query);
$allrowscount = mysqli_num_rows($allrows);
$pages  = ceil($allrowscount/$perPage);

$page = 1;
if(!empty($_GET["page"])) {
$page = $_GET["page"];
}
$start = ($page-1)*$perPage;
if($start < 0) $start = 0;

$query =  $sql . " limit " . $start . "," . $perPage; 
$faq = $dba3->query($query);

您应该在ajax请求中添加async : false,

url: url,
async : false,
type: "GET",
data:  {rowcount:$("#rowcount").val()},

您的浏览器需要等待响应,然后才能发送下一个请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM