iT邦幫忙

0

airbnb 的分頁邏輯解析?

這是我的邏輯:

$page = $_GET['page'];
    $page == '' ? $page = 1 : '';

    $page_size = 10;
    $res = $pdo->query("SELECT * FROM `blog` ");
    $row_count = $res->num_rows;
    $page_num = ceil($row_count / $page_size);
    $offset = ($page - 1) * $page_size;

SQL

LIMIT $offset, $page_size

HTML

<?='<div class="page-layout">'; for($i=1;$i<=$page_num;$i++){?>
      <button class="pageBtn" <?=$page==$i ? 'disabled': '';?> onclick="location.href='?page=<?=$i;?>';"><?=$i;?></button>
    <?} echo '</div>';?>

也就是有幾頁就顯示幾個按鈕...

但我發現 https://airbnb.com 的分頁挺奇妙的:

所以我想問說他這個分頁邏輯是什麼?有大大可以分析嗎?

補充:https://imgur.com/EKpnZnR

看更多先前的討論...收起先前的討論...
rockfire iT邦新手 5 級 ‧ 2018-10-03 15:18:01 檢舉
分頁邏輯應該是一樣
它用scrollbar來判斷要不要繼續讀取資料
當 scrollbar 到達一定位置 就自動讀取下一次資料

https://ithelp.ithome.com.tw/articles/10197885
Luis-Chen iT邦新手 4 級 ‧ 2018-10-03 16:02:04 檢舉
infinity scroll
小松菜奈 iT邦研究生 4 級 ‧ 2018-10-03 16:30:46 檢舉
我發現我要問的東西,圖失效了。。。。我想說怎麼回答得好像跟我問的不一樣
小松菜奈 iT邦研究生 4 級 ‧ 2018-10-03 16:32:04 檢舉
補充:https://imgur.com/EKpnZnR
rockfire iT邦新手 5 級 ‧ 2018-10-03 16:44:40 檢舉
你的意思是說 假設有 100頁 只打算顯示
1 ..... 19 20 21 22 ...... 100 這樣?

至於 左右符號 就 i-1 ,i+1 , i = 目前頁數

for($i=1;$i<=$page_num;$i++) <---- 你這邊就是 全部印出
你要加判斷 ,只印出你要頁碼,剩下的忽略

這個應該是你要吧
https://ithelp.ithome.com.tw/articles/10156675

1 個回答

0
混水摸魚
iT邦新手 2 級 ‧ 2018-10-03 17:06:55
最佳解答

https://www.webteach.tw/?p=781

這個給你參考

我要發表回答

立即登入回答