ThinkPHP 整合Bootstrap Ajax分页样式

发布时间 - 2026-01-10 22:02:49    点击率:

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所有如下图

前台模版

我有个index.html模版,这个页面需要ajax分页,现在我建立一个index_ajax.html模版,如下图

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>&nbsp;删除</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 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分页
});
});

效果图

可以看到分页的中已经有参数了,并且整个查询过程都是Ajax无刷新查询。

以上所述是小编给大家介绍的ThinkPHP 整合Bootstrap Ajax分页样式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# thinkphp  # ajax分页  # bootstrap  # ajax  # 分页  # ThinkPHP5 通过ajax插入图片并实时显示(完整代码)  # Thinkphp5框架ajax接口实现方法分析  # TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例  # thinkPHP5框架实现基于ajax的分页功能示例  # thinkPHP5 ajax提交表单操作实例分析  # 在Thinkphp中使用ajax实现无刷新分页的方法  # thinkPHP基于ajax实现的菜单与分页示例  # thinkPHP5.1框架使用SemanticUI实现分页功能示例  # ThinkPHP5.1+Ajax实现的无刷新分页功能示例  # 首页  # 末页  # 小编  # 如下图  # 都是  # 加载  # 是在  # 是有  # 在此  # 每页  # 给大家  # 可以看到  # 建立一个  # 所述  # 要使  # 我有个  # 给我留言  # 感谢大家  # 条数 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何处理异常和错误?(Handler示例)  海南网站制作公司有哪些,海口网是哪家的?  BootStrap整体框架之基础布局组件  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  简历没回改:利用AI润色让你的文字更专业  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  轻松掌握MySQL函数中的last_insert_id()  如何在Ubuntu系统下快速搭建WordPress个人网站?  Windows Hello人脸识别突然无法使用  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  如何快速搭建高效香港服务器网站?  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  5种Android数据存储方式汇总  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  如何在服务器上配置二级域名建站?  如何用PHP快速搭建高效网站?分步指南  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  香港服务器建站指南:免备案优势与SEO优化技巧全解析  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境  如何在阿里云购买域名并搭建网站?  Android利用动画实现背景逐渐变暗  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  Laravel如何生成URL和重定向?(路由助手函数)  高防服务器如何保障网站安全无虞?  高端云建站费用究竟需要多少预算?  Laravel Fortify是什么,和Jetstream有什么关系  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  中山网站推广排名,中山信息港登录入口?  如何在阿里云虚拟主机上快速搭建个人网站?  大型企业网站制作流程,做网站需要注册公司吗?  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  Java类加载基本过程详细介绍  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  高端建站如何打造兼具美学与转化的品牌官网?  如何在阿里云完成域名注册与建站?  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】