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 11 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
Jan 12 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 PHP
PHP代码维护,重构变困难的4种原因分析
Jan 25 PHP
PHP中header用法小结
May 23 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
Oct 14 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
thinkphp3.2框架中where条件查询用法总结
Aug 13 PHP
PHP反射原理与用法深入分析
Sep 28 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 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集成FCK的函数代码
2008/09/27 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
2016/01/11 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
php/JS实现的生成随机密码(验证码)功能示例
2019/06/06 PHP
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
2016/06/12 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
2016/06/13 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
Python中利用xpath解析HTML的方法
2018/05/14 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
关于Python-faker的函数效果一览
2019/11/28 Python
OpenCV实现机器人对物体进行移动跟随的方法实例
2020/11/09 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
调用HTML5的Canvas API绘制图形的快速入门指南
2016/06/17 HTML / CSS
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
Mankind美国/加拿大:英国领先的男士美容护发用品公司
2018/12/05 全球购物
服务行业个人求职的自我评价
2013/12/12 职场文书
骨干教师培训制度
2014/01/13 职场文书
安全教育实施方案
2014/03/02 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
党员评议思想汇报
2014/10/08 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
房租涨价通知
2015/04/23 职场文书
小学庆六一主持词
2015/06/30 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS