後臺管理列表分頁封裝
阿新 • • 發佈:2019-01-28
今天整理下PHP後臺分頁封裝:
其大致的原理,就是通過$_REQUEST[‘page’]獲取當前的頁碼數,來渲染要生成的頁碼列表,每次點選新的頁碼就會重新渲染
封裝這個函式需要哪些引數:
(1) 當前要渲染的頁碼值
(2) 總的頁碼數
(3) 其他search條件 “&cid=2&pid=6 …”
function showPage($page, $totalPages, $where = null) { $url = $_SERVER['PHP_SELF']; $sep = ' '; $where = $where == null ? null : '&'.$where; $p = ""; //拼湊分頁連結 $indexLinkStr = ($page == 1) ? "首頁" : "<a href="{$url}?page=1{$where}">首頁</a>"; $lastLinkStr = ($page == $totalPages) ? "尾頁" : "<a href="{$url}?page={$totalPages}{$where}">尾頁</a>"; $prevLinkStr = ($page == 1) ? "上一頁" : "<a href="{$url}?page='.($page-1).'{$where}">上一頁</a>"; $nextLinkStr = ($page == $totalPages) ? "下一頁" : "<a href="{$url}?page='.($page+1).'{$where}">下一頁</a>"; $cTotalStr = "總共{$totalPages}頁,當前{$page}頁"; //分頁連結 for($i = 1;$i<=$totalPages;$i++) { if($page == $i) { $p .= "[{$i}]"; } else { $p .= "<a href="{$url}?page={$i}{$where}">[{$i}]</a>"; } } echo $cTotalStr.'<br/>'.$indexLinkStr.$sep.$prevLinkStr.$sep.$p.$sep.$nextLinkStr.$sep.$lastLinkStr; }
在某個頁面載入資料列表的時候,呼叫分頁:
條件:
(1)每頁要顯示的記錄數
(2)總共的記錄數
(3)如果每頁要顯示的記錄數 >總共的記錄數 = 才顯示分頁,也就是呼叫分頁函式
獲取$page等引數的判斷條件:
if(@!!$_REQUEST['page']){
$page = (int)$_REQUEST['page'];
}else{
$page = 1;
}
//頁碼判斷 防止在瀏覽器位址列更改不正確的頁碼
if($page < 1 || $page == null || !is_numeric($page)){ $page = 1; }
//判斷尾頁 防止位址列輸入的值大於總頁數
if($page > $totalPages){
$page = $totalPages;
}
總的分頁呼叫封裝:
//管理員分頁封裝 function getAdminPage($pageSize = 2) { $link = connect(); $sql = "select * from imooc_admin"; $totalRows = getResultNum($link,$sql); //獲取總記錄數 //地址首頁頁碼判斷 if(@!!$_REQUEST['page']){ $page = (int)$_REQUEST['page']; }else{ $page = 1; } //頁碼判斷 防止在瀏覽器位址列更改不正確的頁碼 if($page < 1 || $page == null || !is_numeric($page)){ $page = 1; } //獲取頁碼總數和頁碼的偏移量 好進行資料庫limit查詢 //每頁多少條$pageSize $totalPages = ceil($totalRows/$pageSize); //頁碼數 $offset = ($page - 1)*$pageSize; //記錄數偏移量 //獲取當前頁碼對應的頁面 $termWhere = "limit {$offset} , {$pageSize}"; //判斷尾頁 防止位址列輸入的值大於總頁數 if($page > $totalPages){ $page = $totalPages; } $rowsData = listAdminData($termWhere); if(!$rowsData) { alertMes('當前沒有使用者資訊,請先新增!','addAdmin.php'); } $arr = array(); $arr['rowsData'] = $rowsData; $arr['page'] = $page; $arr['totalPages'] = $totalPages; $arr['totalRows'] = $totalRows; return $arr; }
列表頁面接收:
$pageSize = 3;
$array = getAdminPage($pageSize);
$rowsData = $array['rowsData'];
$page = $array['page'];
$totalPages = $array['totalPages'];
$totalRows = $array['totalRows'];
帥有個屁用!到頭來還不是被卒吃掉!