猿问

請問這個分頁的邏輯是怎麼做的?

這是我的邏輯:

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

    $page_size = $page_data['data_1'];
    $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>';?>

目前總共 23頁,每頁會顯示10筆
但我發現 https://airbnb.com 的分頁挺奇妙的:

所以我想問說他這個分頁邏輯是怎麼寫的?

婷婷同学_
浏览 356回答 2
2回答

蓝山帝景

分页的问题:需要约定好或者通过接口传递参数来限定每一页的数量总数,后台可以通过数据库查询指定分片的数据,或者一次取出做内存分页,方案都可,然后告知前端数据总量;页码的思路,主要是分情况,根据当前页码、总页码,来控制展示,举个例子,当选中第一页时,如何展示,当前页码 >4时,左侧出现省略等等

有只小跳蛙

显示首页、末页、当前页以及当前页的前后页;大于5页显示省略号
随时随地看视频慕课网APP
我要回答