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 相关文章推荐
PHP脚本的10个技巧(1)
Oct 09 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
Dec 10 PHP
php中选择什么接口(mysql、mysqli)访问mysql
Feb 06 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 PHP
typecho插件编写教程(二):写一个新插件
May 28 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
php实现文章置顶功能的方法
Oct 20 PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 PHP
PHP Class SoapClient not found解决方法
Jan 20 PHP
PHP实现的XXTEA加密解密算法示例
Aug 28 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 PHP
Yii框架连表查询操作示例
Sep 06 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连接及读取和写入mysql数据库的常用代码
2014/08/11 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
2015/05/12 PHP
详解PHP数组赋值方法
2015/11/07 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
PHP array_shift()用法实例分析
2019/01/07 PHP
JavaScript 的方法重载效果
2009/08/07 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
2010/04/02 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
JQuery实现的按钮倒计时效果
2015/12/23 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
vue 自定义组件 v-model双向绑定、 父子组件同步通信的多种写法
2017/11/27 Javascript
JavaScript实现京东购物放大镜和选项卡效果的方法分析
2018/07/05 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
python邮件发送smtplib使用详解
2020/06/16 Python
python进行文件对比的方法
2018/12/24 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
中专毕业生的自我鉴定
2013/12/01 职场文书
采购部主管岗位职责
2014/01/01 职场文书
环保公益广告语
2014/03/13 职场文书
读书活动总结
2014/04/28 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
总经理聘用协议书
2015/09/21 职场文书
五年级作文之想象作文
2019/10/30 职场文书
浅谈Python数学建模之线性规划
2021/06/23 Python