簡體   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