• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    tp5框架无刷新分页实现方法分析

    本文实例讲述了tp5框架无刷新分页实现方法。分享给大家供大家参考,具体如下:

    已tp5 分页为例,

    1.默认生成的分页 页码如下:

    ul class="pagination">
    li>a href="?page=1" rel="external nofollow" rel="external nofollow" >laquo;/a>/li>
    li>a href="?page=1" rel="external nofollow" rel="external nofollow" >1/a>/li>
    li class="active">span>2/span>/li>
    li class="disabled">span>raquo;/span>/li>
    /ul>
    
    

    2.点击页码  值,跳转到对应的页面,并get传 page='1' or '2';

    所以无刷新需要做到两点,阻止页码 a链接跳转 和 传值【post 和 get都可以】,ajax传值到后端控制器时,接收并存入$page即可,一定要存入$page,不能是其他变量名(因为框架封装的类里面获取当前页就是从$page中获取的!)

    具体做法是:

    1.进入首页面(带分页的页面),用js或jQuery 给页码a标签阻止跳转;

    $('#pag ul li a').attr("href",'javascript:void(0);');
    
    

    2.给各页码元素绑定点击事件,所做的逻辑就是当页码被点击时,计算或获取到要跳转的页面值。

    3.确定了要跳转的页面值后,然后ajax传值到后端(传递的就是page ,post  get方式都可以)。

    4.后端控制器获取到传值,并存入$page ,其他分页的逻辑按照正常做法查询即可,只是查询出来的数据需要组装成字符串返回去。(返回去的还需要有页码字符串,每一次无刷新的页码字符串都不同,每切换一个页面,需要重新再和数据更换一次)

    4.1为什么定义为$page?  请去框架tp5   thinkphp/think/db/Query.php 找到paginate方法,入下位置(1333-1338行):

    $page = isset($config['page']) ? (int) $config['page'] : call_user_func([
      $class,
      'getCurrentPage',
    ], $config['var_page']);
    $page = $page  1 ? 1 : $page;
    
    

    5.返回的数据通过jquery填入页面里,并删除之前的数据元素!

    2-5  jquery代码如下:

    $(function(){
      //去掉分页的点击跳转
      del_jump();
      //当分页被点击时,进行无刷新分页
      $("#pag").on('click','ul li a',function(){
       //当前被点击的页码数 或者 箭头
       dianji = $(this).html();
       current_page = $('.active span').html();
       page = '';
       if(dianji == "«") {
        current_page = Number(current_page);
        page = String(current_page-1);
       }else if(dianji == "»") {
        current_page = Number(current_page);
        page = String(current_page+1);
       }else{
        page = dianji;
       }
       //发送ajax到后台
       $.post("{:url('Virtual/index')}",
        {'page':page},
        function(data){
         //将返回的数据添加到页面上去
         $('#record_list').html(data.html);
         $('#pag').html(data.pages);
         del_jump();
        },'json');
      });
      //去掉分页的点击跳转
      function del_jump() {
        $('#pag ul li a').attr("href",'javascript:void(0);');
      }
    });
    
    

    更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

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

    您可能感兴趣的文章:
    • tp5框架内使用tp3.2分页的方法分析
    • TP5框架实现自定义分页样式的方法示例
    • ThinkPHP分页类使用详解
    • ThinkPHP 3.2 数据分页代码分享
    • Thinkphp搜索时首页分页和搜索页保持条件分页的方法
    • thinkPHP5分页功能实现方法分析
    • ThinkPHP3.2.3实现分页的方法详解
    • 在Thinkphp中使用ajax实现无刷新分页的方法
    • Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
    • thinkPHP5框架分页样式类完整示例
    • thinkPHP3.2实现分页自定义样式的方法
    • TP3.2框架分页相关实现方法分析
    上一篇:php判断目录存在的简单方法
    下一篇:PHP的静态方法与普通方法用法实例分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    tp5框架无刷新分页实现方法分析 tp5,框架,无,刷新,分页,实现,