ThinkPHP 整合Bootstrap Ajax分页样式


Posted in PHP onDecember 23, 2016

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();// 查询满足要求的总记录数
$Page =new \Think\AjaxPage($count,'ajax-page',10);// 实例化分页类 传入总记录数、ajax更新的局部页面ID和每页显示的记录数(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>');//分页条数
$Page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');//分页样式:首页、末页等
$show= $Page->show();// 分页显示输出
// 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$datas = $Role->where($where)->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
$this->assign('datas',$datas);// 赋值数据集
$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分页,现在我建立一个index_ajax.html模版,如下图

ThinkPHP 整合Bootstrap Ajax分页样式

index.html是有布局的模版,显示ajax分页地方的关键代码如下

<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渲染的页面,所以这里要调用一次index_ajax模版。当点击分页时ajax会替换掉这里的<tbody id="ajax-page"></tbody>内容

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

index_ajax.html是没有布局的模版,只是为了显示数据。代码如下

<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> 删除</a>
</td>
</tr>
</volist>
<else/>
<tr><td colspan="100"class="text-center">没有查询到数据!</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获取内容后并替换掉原有信息
$.get(url,function(data){$("#"+id).html(data);});
returnfalse;
}

效果图

ThinkPHP 整合Bootstrap Ajax分页样式

ThinkPHP Ajax分页带参数查询

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();//实例化查询参数
  var url="{:U('/Admin/Role/index')}"+'?'+search_form;//查询url
return ajax_show('ajax-page',url);//调用ajax分页
});
});

效果图

ThinkPHP 整合Bootstrap Ajax分页样式

可以看到分页的中已经有参数了,并且整个查询过程都是Ajax无刷新查询。

以上所述是小编给大家介绍的ThinkPHP 整合Bootstrap Ajax分页样式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
让你同时上传 1000 个文件 (一)
Oct 09 PHP
什么是MVC,好东西啊
May 03 PHP
php抓取https的内容的代码
Apr 06 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 PHP
控制PHP的输出:缓存并压缩动态页面
Jun 11 PHP
php小技巧之过滤ascii控制字符
May 14 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
Nov 03 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
Aug 18 PHP
php简单实现文件或图片强制下载的方法
Dec 06 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
PHP异步进程助手async-helper
Feb 05 PHP
基于PHP实现微信小程序客服消息功能
Aug 12 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
Dec 23 #PHP
php的4种常用运行方式详解
Dec 22 #PHP
php curl 模拟登录并获取数据实例详解
Dec 22 #PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 #PHP
Docker配置PHP开发环境教程
Dec 21 #PHP
PHP符合PSR编程规范的实例分享
Dec 21 #PHP
利用PHP生成CSV文件简单示例
Dec 21 #PHP
You might like
在PHP中操作Excel实例代码
2010/04/29 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
laravel自定义分页的实现案例offset()和limit()
2019/10/15 PHP
js getElementsByTagName的简写方式
2010/06/27 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
2014/01/06 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
Vue2路由动画效果的实现代码
2017/07/10 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
Vue清除定时器setInterval优化方案分享
2020/07/21 Javascript
[00:23]魔方之谜解锁款式
2018/12/20 DOTA
[37:21]完美世界DOTA2联赛PWL S2 Inki vs Magma 第二场 11.22
2020/11/24 DOTA
python实现apahce网站日志分析示例
2014/04/02 Python
Python实例之wxpython中Frame使用方法
2014/06/09 Python
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
简单实现python爬虫功能
2015/12/31 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
python实现串口通信的示例代码
2020/02/10 Python
详解Python中的Lock和Rlock
2021/01/26 Python
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
大二学期个人自我评价
2014/01/13 职场文书
长安大学毕业生自我鉴定
2014/01/17 职场文书
励志演讲稿600字
2014/08/21 职场文书
财务负责人岗位职责
2015/02/03 职场文书
大雁塔导游词
2015/02/04 职场文书
导游词之镜泊湖
2019/12/09 职场文书
高端收音机+蓝牙音箱,JBL TUNER FM带收音蓝牙音箱评测
2021/04/24 无线电
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技