PHP jQuery AJAX与MySQL结果分页


PHP jQuery AJAX with MySQL results pagination

我面临一个奇怪的问题。我使用jQueryAJAX函数制作了一个显示MySQL结果的页面。结果在每页中显示为12,因此存在多个页面,因此进行分页。

问题是,当我单击第2页或"下一页"时,它会转到第2页,但当我再次单击第3页或"上一页"而不是转到第3页时,它又会回到第1页。当我点击第3页的第2页时,也会发生同样的事情。它总是在转到任何其他页面之前返回到第1页。原因是

if(isset($_REQUEST['page'])) {
    $page = $_REQUEST['page'];
}
else{
    $page = 1;
}

返回false,因此它每次在转到第三页之前都将页面设置回1,除非它在第一页上。

这是jQuery AJAX函数:

<script type="text/javascript">
$(".pagination a").on( "click", function(e){
    e.preventDefault();
    $(".loading-div").show(); //show loading element
    var page = $(this).attr("data-page"); //get page number from link
    $("#container").remove();
    $("#content").load("fetch_page.php",{"page":page}, function(){ 
        $(".loading-div").hide(); // hide loading element
    });
 });
</script>

此外,我有一个图像缩放功能,当点击图像时,它会显示为模式框类型的窗口。即使是这样,也只能在第1页上使用,而不能在任何其他页面上使用。即使我加载第2页并再次单击第1页,它也能工作。我注意到,当我点击第1页时,页面加载就好像它不是通过AJAX加载,而是加载整个页面本身,因为它加载的是顶部的页面。而其他页面则使用AJAX按预期加载。

这很奇怪,我不明白为什么会发生这种情况,尽管我已经检查了分页代码,而且它的href属性中显然根本没有任何URL。

这适用于委派:

$(document).ready(function() {
    $("#content" ).load( "fetch_page.php");
$("#content").on( "click", ".pagination a", function (e){
    e.preventDefault();
    $(".loading-div").show(); //show loading element
    var page = $(this).attr("data-page"); //get page number from link
    $("#content").load("fetch_page.php",{"page":page}, function(){ //get content
        $(".loading-div").hide(); //hide loading element
    });
  });
});