怎么在ThinkPHP5.1项目中利用Ajax实现一个无刷新分页功能
创始人
2024-12-06 00:22:13
0次

具体如下:

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

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


  
    
      
          
            
              
                ID
                名称
                取值
                显示
                排序
                操作
              
            
            
              {volist name="self" id="vo"}
              
                {$vo.id}
                {$vo.name}
                {$vo.value}
                
                  {if $vo.isshow==1}
                  是
                  {else/}
                  否
                  {/if}
                
                
                
                  
                    操作 
                    
                    
                      
  • 修改                       
  •                       
  • 删除                       
  •                                        
                                                  {/volist}                                 {$self|raw}                                                                 排序                        
            
          
        
      

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

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

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

    
        {include file="selfattribute/paginate1"}
    

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

    
      
        «
      
        1
      
  •     2
  •   
  •     3
  •   
  •     4
  •   
  •     5
  •   
  •     6
  •   
  •     »
  • 这就是好多人搞不懂的pagination是怎么来的。

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

    
      $(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;
      });
      

    其中.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();
        }
      }

    相关内容

    热门资讯

    空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
    空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
    格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
    空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
    格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
    品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
    空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
    空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
    中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
    中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...