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 相关文章推荐
操作Oracle的php类
Oct 09 PHP
PHP strtok()函数的优点分析
Mar 02 PHP
php的memcached客户端memcached
Jun 14 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
Dec 29 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
php版本的cron定时任务执行器使用实例
Aug 19 PHP
php获取POST数据的三种方法实例详解
Dec 20 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 PHP
phpMyAdmin无法登陆的解决方法
Apr 27 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
php 文件上传至OSS及删除远程阿里云OSS文件
Jul 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读取和编写XML DOM的实现代码
2011/02/03 PHP
PHP设置图片文件上传大小的具体实现方法
2013/10/11 PHP
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
[52:02]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第二场 2月26日
2021/03/11 DOTA
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
python 2.7.14安装图文教程
2018/04/08 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
Python基本数据结构与用法详解【列表、元组、集合、字典】
2019/03/23 Python
python模块如何查看
2020/06/16 Python
html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
2013/01/06 HTML / CSS
“学雷锋活动月”总结
2014/03/09 职场文书
2014春晚主持词
2014/03/25 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书
道歉情书大全
2015/05/12 职场文书
首席执行官观后感
2015/06/03 职场文书
教育教学读书笔记
2015/07/02 职场文书
学校食堂管理制度
2015/08/04 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书