我面临一个奇怪的问题。我创建了一个使用jQuery AJAX函数显示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
属性中根本没有任何网址。
答案 0 :(得分:0)
这适用于授权:
$(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
});
});
});