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 相关文章推荐
特详细的PHPMYADMIN简明安装教程
Aug 01 PHP
PHP伪造referer实例代码
Sep 20 PHP
PHP注释实例技巧
Oct 03 PHP
php 静态变量与自定义常量的使用方法
Jan 26 PHP
PHP程序开发范例学习之表单 获取文本框的值
Aug 08 PHP
深入php函数file_get_contents超时处理的方法详解
Jun 03 PHP
浅析PHP编程中10个最常见的错误
Aug 08 PHP
php实现redis数据库指定库号迁移的方法
Jan 14 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
php静态成员方法和静态的成员属性的使用方法
Oct 26 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 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
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
关于时间计算的结总
2006/12/06 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
javascript实现简单查找与替换的方法
2015/07/22 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
JavaScript异步上传图片文件的实例代码
2017/07/04 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
2017/07/13 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
利用python的socket发送http(s)请求方法示例
2018/05/07 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
CSS3 translate导致字体模糊的实例代码
2019/08/30 HTML / CSS
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
电子信息工程专业自荐书
2014/06/24 职场文书
住房公积金贷款工资证明
2015/06/12 职场文书
观后感格式
2015/06/19 职场文书
大队委员竞选稿
2015/11/20 职场文书