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 相关文章推荐
php不用正则采集速度探究总结
Mar 24 PHP
.htaccess文件保护实例讲解
Feb 06 PHP
PHP中fwrite与file_put_contents性能测试代码
Aug 02 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
May 04 PHP
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
Jun 04 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
PHP中feof()函数实例测试
Aug 23 PHP
PHP浮点比较大小的方法
Feb 14 PHP
PHP学习笔记之php文件操作
Jun 03 PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
Nov 10 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 array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
php设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
php格式化电话号码的方法
2015/04/24 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
PHP-FPM 的管理和配置详解
2019/02/17 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
jQuery替换节点元素的操作方法
2018/03/18 jQuery
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
Vue使用NPM方式搭建项目
2018/10/25 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
python pandas实现excel转为html格式的方法
2018/10/23 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
python redis存入字典序列化存储教程
2020/07/16 Python
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
马来西亚最大的在线隐形眼镜商店:MrLens
2019/03/27 全球购物
新学期开学寄语
2014/01/18 职场文书
自主招生自荐信指南
2014/02/04 职场文书
教职工代表大会主持词
2014/04/01 职场文书
化工操作工岗位职责
2014/04/29 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
群众路线批评与自我批评发言稿
2014/10/16 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
Python中的 enumerate和zip详情
2022/05/30 Python