thinkphp5 1 layui應用分頁

2022-05-15 20:38:42 字數 3577 閱讀 6684

以往用原生時,若要在專案上使用分頁,後端**經常要一整頁,現在使用thinkphp之後才發現曾經複雜的後端**簡單到了極致,直接用官方提供的paginate() 方法就可以很簡單的實現了,廢話少說,接下來用**實現乙個完整的電腦端分頁功能。

首先,引入layui檔案(我這裡是放在public裡面的web_static資料夾下,並全域性使用,建議新手也全域性使用,不然可能要寫很多相容樣式,之前寫乙個站的相容的時候真的太痛苦了)

<

link

rel="stylesheet"

href

="/web_static/layui/css/layui.css"

/>

接下來是html頁面

<

div

style

="width: 1200px;margin: 0 auto;"

>

<

div>

<

div

id="allguests"

style

="display: flex;flex-direction: row;flex-wrap: wrap"

>

<

div

style

="width: 30%;margin: 20px;box-sizing: border-box;border: 1px solid #e2e2e2;border-radius: 10px;overflow: hidden;"

>

<

a href

="">

<

img

style

="width: 100%;height: 300px;object-fit: cover;"

src=""

>

<

div

style

="text-align: center;font-size: 18px;line-height: 50px;"

>

div>

a>

div>

div>

<

div

style

="width:1200px;text-align:center;margin: 0 auto;"

>

<

div

id="paging"

class

="paging"

style

="background-color: transparent;"

>

div>

div>

div>

div>

上面foreach內的內容是要迴圈的資料,因為下面會用到,所以先說明。

然後就是js部分了(這裡和上面的html是寫在同一頁面的,js要分開的同學需要自己處理一下),$list表示獲取到的後端資料,下方

foreach內的內容與上面foreach內的內容一樣,但是轉成了js可以輸出的形式,tp的模板也跟著做了一些變化

<

script

>

layui.use(

'laypage',

function

() '

, limit:

10, curr: ''

, layout: [

'count',

'prev',

'page',

'next',

'skip']

, theme:

'pageclass'//

生成乙個類名為layui-laypage-pageclass的類,方便使用css對其進行樣式修改

, jump:

function

(obj, first) }).then(

function

(res) );

document.getelementbyid(

'allguests

').innerhtml

=html;

varnewurl ="

?page="+

obj.curr;

varstateobject =0

;

vartitle ="

0"; history.replacestate(stateobject, title, newurl);

document.documentelement.scrolltop

=655

; document.body.scrolltop

=655

; });}}

});});

script

>

接下來就是後端了,在寫後端之前先給大家貼一下我定義的路由,免得等下大家找不到對應的方法

route::get('web/demo','index/demo/demo'); //主頁面

route::get('web/demo/list','index/demo/demolist'); //分頁

thinkphp部分controller控制器($page為起始頁,$pagesize為每頁最多資料條數,$pagesize的值應與js中limit的值相同)

public

function demo($page = 1, $pagesize = 10)

//分頁一部分

public

function demolist($page = 1, $pagesize = 10)

model模型

public

static

function getdemo($page, $pagesize

)

.layui-laypage-pageclass span.layui-laypage-pageclass .layui-laypage-count.layui-laypage-pageclass .layui-laypage-curr.layui-laypage-pageclass .layui-laypage-curr .layui-laypage-em.layui-laypage-pageclass .layui-laypage-curr em.layui-laypage-pageclass a.layui-laypage-pageclass .layui-laypage-skip.layui-laypage-pageclass .layui-input.layui-laypage-pageclass .layui-laypage-btn
好了,這樣就修改完成了,以下是最終效果, 資料也是會跟著變化的,這裡不便展示,先和大家說一聲

ThinkPHP5 1鉤子和行為

tp5.1的行為是乙個比較抽象的概念,執行的流程使用者的註冊,登入,退出登入等等都可以作為乙個行為。而不同的行為之間也具有位置共同性,比如,有些行為的作用位置在使用者註冊後,在登入之後,退出登入之後,等等有些行為的作用位置都是在應用執行前,有些行為都是在模板輸出之後,把這些行為發生作用的位置稱之為鉤...

thinkphp5 1 匯入excel檔案

public function importexcel 限制上傳 型別 ext substr strrchr files file name 1 if ext xls ext xlsx 讀取 filename files file tmp name reader iofactory createre...

ThinkPHP5 1學習 模組設計

一 目錄結構 thinkphp5.1 預設是多模組架構,也可以設定為單模組操作 手冊摘入的結構列表 多模組設計在 url 訪問時,必須指定響應的模組名,比如 public test abc eat 如果你只有 test 這乙個模組時,你可以繫結這個模組,從而省略寫法 此時,url 呼叫就變成了 pu...