jQuery+Ajax+php分页

<div class="lists"
    <ul id="ul_lists" class="clearfix"
    </ul> 
</div>



jQuery部分

首先声明全局变量,后面分页用到。

var page_cur = 1; //当前页 
var total_num, page_size, page_total_num;//总记录数,每页条数,总页数


接着通过函数getData() 获取当前页数据。我们利用$.ajax GET方式把参数page以json格式传到ajax.php。
function getData(page) //获取当前页数据 
    $.ajax(
        type: 'GET', 
        url: 'ajax.php', 
        data: 
            'page': page - 
        }, 
        dataType: 'json', 
        success: function(json) 
            $("#ul_lists").empty(); 
            total_num = json.total_num; //总记录数 
            page_size = json.page_size; //每页数量 
            page_cur = page; //当前页 
            page_total_num = json.page_total_num; //总页数 
            var li = ""; 
            var list = json.list; 
            $.each(list, 
            function(index, array) //遍历返回json 
                li += "<li><a href='#'><img src='" + array['pic'] + "'>" + array['title'] + "</a></li>"; 
            }); 
            $("#ul_lists").append(li); 
        }, 
        complete: function() 
            getPageBar(); //js生成分页,可用程序代替 
        }, 
        error: function() 
            alert("数据异常,请检查是否json格式"); 
        
    }); 
}



每次请求返回的商品放置在#ul_lists中。当数据完全加载完毕后,调用函数getPageBar()生成分页,也可用程序来实现分页。
function getPageBar() //js生成分页 
    if (page_cur > page_total_num) page_cur = page_total_num; //当前页大于最大页数 
    if (page_cur < 1) page_cur = 1; //当前页小于1 
    page_str = "<span>共" + total_num + "条</span><span>" + page_cur + "/" + page_total_num + "</span>"; 
    if (page_cur == 1) //若是第一页 
        page_str += "<span>首页</span><span>上一页</span>"; 
    else 
        page_str += "<span><a href='javascript:void(0)' data-page='1'>首页</a></span><span><a href='javascript:void(0)' data-page='" + (page_cur - 1) + "'>上一页</a></span>"; 
    
    if (page_cur >= page_total_num) //若是最后页 
        page_str += "<span>下一页</span><span>尾页</span>"; 
    else 
        page_str += "<span><a href='javascript:void(0)' data-page='" + (parseInt(page_cur) + 1) + "'>下一页</a></span><span><a href='javascript:void(0)' data-page='" + page_total_num + "'>尾页</a></span>"; 
    
    $("#page").html(page_str); 
}



最后,当页面第一次加载时,我们加载第一页数据即getData(1),当点击分页条中的分页链接时,通过getData(page)加载对应页码的数据。页面page可在分页的属性data-page中获取。
$("#page a").live('click',function() //live 向未来的元素添加事件处理器,不可用bind 
    var page = $(this).attr("data-page"); //获取当前页 
    getData(page) 
});



PHP

ajax.php接收每次前端页面的ajax请求,根据提交的页码page,计算总记录数和总页数,读取对应页码下的数据列表,并将结果以JSON格式返回给前端页面。

include_once('connect.php'); 
 
$page = intval($_GET['page']); //当前页 
$total_num = mysql_num_rows(mysql_query("select id from goods")); //总记录数 
 
$page_size = 6; //每页数量 
$page_total = ceil($total_num / $page_size); //总页数 
$page_start = $page * $page_size; 
 
$arr = array("total_num" = >$total_num, "page_size" = >$page_size, "page_total_num" = >$page_total, ); 
$query = mysql_query("SELECT id,title,pic FROM goods ORDER BY ID ASC LIMIT $page_start,$page_size"); 
while ($row = mysql_fetch_array($query)) { 
    $arr['list'][] = array('id' = >$row['id'], 'title' = >$row['title'], 'pic' = >$row['pic'], ); 

 
echo json_encode($arr);



 

转载于:https://www.cnblogs.com/chenyufu/p/7018911.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值