網(wǎng)站建設(shè)之php+jquery無(wú)刷新數(shù)據(jù)分頁(yè)(深圳網(wǎng)站建設(shè))

2023-12-28    分類(lèi): 網(wǎng)站建設(shè)

當(dāng)我們展現(xiàn)大量數(shù)據(jù)的時(shí)候,一般用會(huì)刷新頁(yè)面?zhèn)魅氩煌瑓?shù)方式 進(jìn)行數(shù)據(jù)分頁(yè),但是每次刷頁(yè)面定位就會(huì)在頭部,如果用瞄點(diǎn)或者更好的js動(dòng)畫(huà)進(jìn)行重新定位,也會(huì)有頁(yè)面刷新時(shí)閃屏的現(xiàn)象,為了追求更好的用戶體驗(yàn),我們結(jié)合ajax的局部刷新做一個(gè)不刷新頁(yè)面的的分頁(yè)
function page_ajax($total,$page,$page_size = '')
{
//$total :總數(shù)
//$page  :傳遞過(guò)來(lái)的當(dāng)前頁(yè)的值,第八頁(yè)$page = 8;
//$page_size :每頁(yè)顯示的數(shù)據(jù)的數(shù)目
//$url   :傳遞的地址,默認(rèn)為當(dāng)前頁(yè)面
//$max_length:分頁(yè)代碼時(shí)候,中間的分頁(yè)數(shù)的一半
$page = ($page < 1) ? 1 : $page ;
$page_size = $page_size ? $page_size : 10;
$url = $url ? $url :$_SERVER['PHP_SELF'];
  //$url=str_replace('.html','',$url);
$max_length = $max_length ? $max_length : 5 ;
$start = $page ? ($page - 1) * $page_size : 0;
$total_page = ceil($total/$page_size);
$page_table = '';
//aways in the pages
$page_table = '<div class="nav-page">';
if($total>0){
//顯示第一頁(yè)
if($page>1){
$page_table .='<a href="###" onclick="javascript:get_log('.($page-1).')" class="previous">&lt;</a>';
}
if($page == 1 )
{
$page_table .= '<a href="###" onclick="javascript:get_log(1)" class="on">1</a>';
}
else
{
$page_table .= '<a href="#sku_list" onclick="javascript:get_log(1)">1</a>';
}

//循環(huán)中間頁(yè)碼
if($total_page < $max_length*2)
{
$loop_start = 2;
$loop_end = $total_page-1;
}
else
{
$loop_start = $page - $max_length;
$loop_start = ($loop_start <2) ? 2 :$loop_start;
$loop_end = $page + $max_length;
$loop_end = ($loop_end < $max_length * 2) ? $max_length * 2:$loop_end;
$loop_end = ($loop_end > $total_page) ? $total_page-1 :$loop_end;
}
//... link
$link_start = (($loop_start - $max_length) < 2) ? 2 :$loop_start - $max_length;
$link_end = (($loop_end + $max_length) > $total_page) ? $total_page :$loop_end + $max_length;
if($loop_start > 2)
{
$page_table .= '<a href="###" onclick="javascript:get_log('.$link_start.')">...</a>';
}
//中間鏈接
for($i = $loop_start ; $i <= $loop_end ; $i++)
{
if($page == $i)
{
$page_table .= ' <a href="###" onclick="javascript:get_log('.$i.')" class="on">'.$i.'</a>';
}
else
{
if($i<>$total_page){ //i不等于總頁(yè)數(shù)$page_table .= '<a href="###" onclick="javascript:get_log('.$i.')">'.$i.'</a>';
    }
}
}
if($loop_end < $total_page-1)
{
$page_table .= '<a href="###" onclick="javascript:get_log('.$link_end.')">...</a>';
}
//末頁(yè)鏈接
if($total_page!=1)
{
if($page == $total_page)
{
$page_table .= '<a href="###" onclick="javascript:get_log('.$total_page.')" class="on">'.$i.'</a>';
}
else
{
$page_table .= '<a href="###" onclick="javascript:get_log('.$total_page.')">'.$total_page.'</a>';
}
}
}
//輸出分頁(yè)代碼
if($total_page>$page){
  $page_table .= '
  <a  href="###" onclick="javascript:get_log('.($page+1).')"class="next" title="下一頁(yè)">&gt;</a>';
}else{
 $page_table .= '';
}
$page_table.='</div>';
return $page_table;
}

上面是拼接鏈接的處理函數(shù)。
在控制器中 通過(guò)傳遞的n的頁(yè)碼數(shù)查詢數(shù)據(jù),將數(shù)據(jù)返回到前端
$page = I('page')>1 ? I('page') : 1 ;
$page_size=10;//每頁(yè)顯示數(shù)量
$start = ($page-1)*$page_size;
$ModelObj->where($map)->limit($start,$page_size)->order('create_time desc,id')->select();//echo $ModelObj->_sql();//查詢數(shù)據(jù)
$this->page=page_ajax($total,$page);//分頁(yè)鏈接
前端jq
function get_log(n) {
    $.ajax({
        url: url_get_pay+'?page='+n,
         cache: false,
         success: function (obj) {
            $('#log_list').html(obj); //將內(nèi)容輸入到容器中
        },
        error: function () {
            layer.msg('搜索出現(xiàn)錯(cuò)誤!', {icon: 5}); //layer彈窗插件
        }
    });
}

以上就是關(guān)于網(wǎng)站建設(shè)之php+jquery無(wú)刷新數(shù)據(jù)分頁(yè)(深圳網(wǎng)站建設(shè)),希望對(duì)你有幫助,更多內(nèi)容關(guān)注創(chuàng)新互聯(lián)。

文章名稱(chēng):網(wǎng)站建設(shè)之php+jquery無(wú)刷新數(shù)據(jù)分頁(yè)(深圳網(wǎng)站建設(shè))
文章來(lái)源:http://muchs.cn/news40/310840.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)做網(wǎng)站、網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計(jì)、商城網(wǎng)站、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司