ThinkPHP5.1+Ajax实现的无刷新分页功能示例


Posted in PHP onFebruary 10, 2020

本文实例讲述了ThinkPHP5.1+Ajax实现的无刷新分页功能。分享给大家供大家参考,具体如下:

无刷新分页可以减轻服务器负担,利用Ajax技术,请求部分信息,提高网站访问速度,是网站建设的必备技术。

需要在后台展示自定义属性列表(lst.html),其中的列表部分摘出来,放到(paginate1.html)中:

<div class="row">
  <div class="col-sm-12">
    <div class="ibox float-e-margins">
      <div class="ibox-content">
          <table class="table table-bordered">
            <thead>
              <tr>
                <th>ID</th>
                <th>名称</th>
                <th>取值</th>
                <th>显示</th>
                <th>排序</th>
                <th>操作</th>
              </tr>
            </thead>
            <tbody>
              {volist name="self" id="vo"}
              <tr>
                <td>{$vo.id}</td>
                <td>{$vo.name}</td>
                <td>{$vo.value}</td>
                <td>
                  {if $vo.isshow==1}
                  <button type="button" class="btn btn-success btn-sm">是</button>
                  {else/}
                  <button type="button" class="btn btn-danger btn-sm">否</button>
                  {/if}
                </td>
                <td><input type="text" value="{$vo.order}" name=""></td>
                <td>
                  <div class="btn-group open">
                    <button data-toggle="dropdown" class="btn btn-primary dropdown-toggle" aria-expanded="true">操作 <span class="caret"></span>
                    </button>
                    <ul class="dropdown-menu">
                      <li><a href="">修改</a>
                      </li>
                      <li><a href="">删除</a>
                      </li>
                    </ul>
                  </div>
                </td>
              </tr>
              {/volist}
            </tbody>
          </table>
        {$self|raw}
        <div class="row">
          <div class="col-sm-2">
            <button class="btn btn-success" type="button" id="changeOrder">
              <i class="fa fa-plus-square"></i>  
              <span class="bold">排序</span>
            </button>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

其中self是服务器端传递过来的自定义属性,并进行了分页操作:

$selfattribute_select = db("selfattribute")->paginate(5);
$this->assign("self",$selfattribute_select);

因为lst.html把列表摘了出来,所以还要在引入回去,才能使页面完整,同时,为了方便进行jquery操作,把列表用带id的div包裹起来:

<div id="paginate">
    {include file="selfattribute/paginate1"}
</div>

ThinkPHP5.1带的分页类使用的是BootStrap样式,它在页面显示时实际会有一个pagination的类,查看源代码如下:

<ul class="pagination">
  <li class="disabled">
    <span>«</span></li>
  <li class="active">
    <span>1</span></li>
  <li>
    <a href="/xkershouche/public/admin/selfattribute/lst.html?page=2" rel="external nofollow" rel="external nofollow" >2</a></li>
  <li>
    <a href="/xkershouche/public/admin/selfattribute/lst.html?page=3" rel="external nofollow" >3</a></li>
  <li>
    <a href="/xkershouche/public/admin/selfattribute/lst.html?page=4" rel="external nofollow" >4</a></li>
  <li>
    <a href="/xkershouche/public/admin/selfattribute/lst.html?page=5" rel="external nofollow" >5</a></li>
  <li>
    <a href="/xkershouche/public/admin/selfattribute/lst.html?page=6" rel="external nofollow" >6</a></li>
  <li>
    <a href="/xkershouche/public/admin/selfattribute/lst.html?page=2" rel="external nofollow" rel="external nofollow" >»</a></li>
</ul>

这就是好多人搞不懂的pagination是怎么来的。

然后开始写js代码,因为我们的分页按钮也在被请求的页面当中,属于“未来”的元素,所以这里我们要用on方法,这个方法是jquery1.7以后的方法,注意自己的jquery版本。

<script type="text/javascript">
  $(document).on('click', '.pagination a', function(event) {
    var url = $(this).attr('href');
    $.ajax({
      url: url,
      type: 'get',
    })
    .done(function(data) {
      $("#paginate").html(data);
    })
    return false;
  });
  </script>

其中.done()方法和success方法是一样的,return false是为了阻止默认事件,防止直接跳转。

那么服务器端就可以根据情况渲染模板了,代码如下:

public function lst()
  {
    $selfattribute_select = db("selfattribute")->paginate(5);
    $this->assign("self",$selfattribute_select);
    if (request()->isAjax()) {
      return view("paginate1");
    } else {
      return view();
    }
  }

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
增加反向链接的101个方法 站长推荐
Jan 31 PHP
PHP 常用函数库和一些实用小技巧
Jan 01 PHP
php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
Dec 19 PHP
PHP动态生成javascript文件的2个例子
Apr 11 PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
Mar 25 PHP
curl和libcurl的区别简介
Jul 01 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
Dec 14 PHP
php mysql实现mysql_select_db选择数据库
Dec 30 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
ThinkPHP5&amp;5.1实现验证码的生成、使用及点击刷新功能示例
Feb 07 #PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
Feb 07 #PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 #PHP
php测试kafka项目示例
Feb 06 #PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 #PHP
PHP实现常用排序算法的方法
Feb 05 #PHP
PHP ElasticSearch做搜索实例讲解
Feb 05 #PHP
You might like
在PHP中执行系统外部命令
2006/10/09 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
JS中的二叉树遍历详解
2016/03/18 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/10/05 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
swiper自定义分页器使用方法详解
2020/09/14 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
2019/07/13 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
JS实现分页导航效果
2020/02/19 Javascript
在python中的socket模块使用代理实例
2014/05/29 Python
Django 使用logging打印日志的实例
2018/04/28 Python
如何用python整理附件
2018/05/13 Python
如何利用Python分析出微信朋友男女统计图
2019/01/25 Python
pandas 时间格式转换的实现
2019/07/06 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
文科教师毕业的自我评价
2014/01/16 职场文书
公司周年庆典策划方案
2014/05/17 职场文书
北京申奥口号
2014/06/19 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
五一劳动节活动总结
2015/02/09 职场文书
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers