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 快速生成 Flash 动画的方法
Mar 06 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
May 14 PHP
PHP 中检查或过滤IP地址的实现代码
Nov 27 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
Jul 05 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
PHP、Python和Javascript的装饰器模式对比
Feb 03 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
Mar 23 PHP
PHP图片加水印实现方法
May 06 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
Nov 20 PHP
Mac系统下安装PHP Xdebug
Mar 30 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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新手谈谈我的学习心得
2007/02/25 PHP
PHP合并静态文件详解
2014/11/14 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
2017/03/15 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
js直接编辑当前cookie的脚本
2008/09/14 Javascript
JavaScript 开发中规范性的一点感想
2009/06/23 Javascript
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
JS实现很酷的EMAIL地址添加功能实例
2015/02/28 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
Vue 实现前进刷新后退不刷新的效果
2019/06/14 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
pycharm 使用心得(三)Hello world!
2014/06/05 Python
Python实现把xml或xsl转换为html格式
2015/04/08 Python
python插入数据到列表的方法
2015/04/30 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
Java如何调用外部Exe程序
2015/07/04 面试题
优秀共产党员先进事迹材料
2014/05/06 职场文书
债务纠纷委托书
2014/08/30 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
Pytorch 如何实现常用正则化
2021/05/27 Python
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python
欧元符号 €
2022/02/17 杂记