溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ThinkPHP如何整合Bootstrap Ajax分頁樣式

發(fā)布時間:2021-08-31 11:11:06 來源:億速云 閱讀:143 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下ThinkPHP如何整合Bootstrap Ajax分頁樣式,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

ThinkPHP Ajax分頁代碼

publicfunction index()
{
$where=array();
$name = I('name');
if(!empty($name)){
$where['name']= array('like','%'.(string)$name.'%');
}
$Role=M('Role');
$count= $Role->where($where)->count();// 查詢滿足要求的總記錄數(shù)
$Page =new \Think\AjaxPage($count,'ajax-page',10);// 實例化分頁類 傳入總記錄數(shù)、ajax更新的局部頁面ID和每頁顯示的記錄數(shù)(10)
$Page->lastSuffix=false;
$Page->setConfig('first','首頁');
$Page->setConfig('last','末頁');
$Page->setConfig('header','<span class="rows btn btn-default margin-l-2">共 %TOTAL_ROW% 條</span>');//分頁條數(shù)
$Page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');//分頁樣式:首頁、末頁等
$show= $Page->show();// 分頁顯示輸出
// 進行分頁數(shù)據(jù)查詢 注意limit方法的參數(shù)要使用Page類的屬性
$datas = $Role->where($where)->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
$this->assign('datas',$datas);// 賦值數(shù)據(jù)集
$this->assign('page',$show);// 賦值分頁輸出
if(IS_AJAX){
$this->display('index_ajax');
}else{
$this->display();
}
}

ajax-page是模版中用于替換局部頁面的ID

index_ajax是局部頁面模版

擴展小部件ExtWidget

我是在Admin模塊下建的這個類/Application/Admin/Widget/ExtWidget.class.php所有如下圖

ThinkPHP如何整合Bootstrap Ajax分頁樣式

前臺模版

我有個index.html模版,這個頁面需要ajax分頁,現(xiàn)在我建立一個index_ajax.html模版,如下圖

ThinkPHP如何整合Bootstrap Ajax分頁樣式

index.html是有布局的模版,顯示ajax分頁地方的關(guān)鍵代碼如下

<table id="users"class="table table-bordered table-hover table-striped">
 <thead>
 <tr>
  <th><input class="check-all" type="checkbox"/></th>
  <th width="90%">名稱</th>
  <th width="10%">操作</th>
 </tr>
 </thead>
 <tbody id="ajax-page">
 {:W('Ext/renderPartial',array('data'=>array('partial'=>'Role/index_ajax','data'=>$datas,'page'=>$page)))}
 </tbody>
</table>

第一次頁面加載的時候不是ajax渲染的頁面,所以這里要調(diào)用一次index_ajax模版。當點擊分頁時ajax會替換掉這里的<tbody id="ajax-page"></tbody>內(nèi)容

{:W('Ext/renderPartial',array('data'=>array('partial'=>'Role/index_ajax','data'=>$datas,'page'=>$page)))}

index_ajax.html是沒有布局的模版,只是為了顯示數(shù)據(jù)。代碼如下

 <notempty name="datas">
<volist name="datas" id="vo">
<tr>
<td><input class="ids" type="checkbox" name="id[]" value="{$vo.id}"/></td>
<td>{$vo.name}</td>
<td>
<span class="btn btn-xs btn-primary mySave" data-toggle="modal" data-id="{$vo.id}" data-url="{:U('/Admin/Role/update')}"><span class="glyphicon glyphicon-edit margin-r-2" aria-hidden="true"></span>修改</span>
<a class="confirm ajax-get btn btn-xs btn-primary" href="{:U('/Admin/Role/del',array('id'=>$vo['id']))}"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>&nbsp;刪除</a>
</td>
</tr>
</volist>
<else/>
<tr><td colspan="100"class="text-center">沒有查詢到數(shù)據(jù)!</td><tr>
</notempty>
<notempty name="page">
<tr><td colspan="100"class="text-right">{$page}</td><tr>
</notempty>

js代碼如下

//ajax分頁查詢
function ajax_show(id,url){
//加載圖片
$('#ajax-loading-img').html('<img src="/Public/img/loading.gif" class="margin-r-2" alt="加載中...">');
//ajax獲取內(nèi)容后并替換掉原有信息
$.get(url,function(data){$("#"+id).html(data);});
returnfalse;
}

效果圖

ThinkPHP如何整合Bootstrap Ajax分頁樣式

ThinkPHP Ajax分頁帶參數(shù)查詢

html代碼

<form class="navbar-form" role="search" id="search-form" method="get" action="{:U('/Admin/Role/index')}">
<div class="form-group">
名稱:<input class="form-control" name="name" type="text">
</div>
<button type="submit"class="btn btn-primary" id="my-search"><span class="glyphicon glyphicon-glass margin-r-2" aria-hidden="true"></span>查詢</button>
</form>

js代碼

$(function(){
$('#my-search').click(function(){
var search_form=$("#search-form").serialize();//實例化查詢參數(shù)
  var url="{:U('/Admin/Role/index')}"+'?'+search_form;//查詢url
return ajax_show('ajax-page',url);//調(diào)用ajax分頁
});
});

效果圖

ThinkPHP如何整合Bootstrap Ajax分頁樣式

可以看到分頁的中已經(jīng)有參數(shù)了,并且整個查詢過程都是Ajax無刷新查詢。

以上是“ThinkPHP如何整合Bootstrap Ajax分頁樣式”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI