阅读 94

tp5中ajax的搜索分页功能

1.先将数据完整展示出来
  (1)后台代码
    public function GoodsShow(){
      //每页显示数量
      $size=5;
      $model=new \app\test\model\Goods();
      $data=$model->join(‘type‘,‘t_id=type_id‘)->select();
      $data=collection($data)->toArray();
      //计算一共有多少数据
      $count=count($data);
      //向上取整,计算总页数
      $p=ceil($count/$size);
      //定义空数组,用于放置页码
      $res=[];
      //循环总页数,并将页码放入空数组中
      for($i=1;$i<=$p;$i++){
        $res[]=$i;
      }
      //因为是第一页展示,所以我们直接利用limit截取前五条数据
      $data=$model->join(‘type‘,‘t_id=type_id‘)->limit($size)->select();
      //返回页面以及数据和页码
      return view(‘./goodsShow‘,compact(‘data‘,‘res‘));
    }
  (2)前台代码
    
    


    
      
      
      
      
      
      
      
      
    
    
    {volist name="data" id="vo"}
      
        
        
        
        
        
        
        {if $vo.goods_statu==1}
          
        {else}
          
        {/if}
        
      
    {/volist}
  

        
      
商品ID商品logo商品名称商品分类添加时间商品状态操作

          
        
{$vo.goods_id}
          
        
{$vo.goods_name}{$vo.type_name}{$vo.create_time}推荐不推荐
          
          
        

  


    
    {foreach $res as $item}
      
       {$item}
    {/foreach}
  

  (3).如下图

2.进行无刷新分页和搜索操作

  (1).先写一个搜索框和按钮(注:表单按钮的class属性值与页码一致)
    


      
      
    

    
  (2).写出jQuery
    //给页码和搜索按钮一个点击事件,按钮与页码都调用这一个点击事件
    $(‘.span‘).click(function () {
      //当点击页码时获取页码的值
      var pay=$(this).text();
      //获取搜索框内的值
      var input=$(‘.input‘).val();
      //当点击搜索的时候它会获取到"搜索"两个字,所以要判断一下是否为数字,不是的话给pay赋值1
      if (isNaN(pay)){
        pay=1;
      }
      //进行异步请求
      $.ajax({
        //请求地址
        url:"{:url(‘test/Seek/fen‘)}",
        //请求值
        data:{pay:pay,input:input},
        //请求方式
        type:‘post‘,
        //成功后回调函数
        success:function (res) {
          var tr=‘‘;
          //表格表头
          tr+="商品ID商品logo商品名称商品分类添加时间商品状态操作";
          //将查询到的数据循环拼接到一起
          $.each(res.data,function (k,v) {
            tr+="";
            tr+="";
            tr+=""+v.goods_id+"";
            tr+="‘‘";
            tr+=""+v.goods_name+"";
            tr+=""+v.type_name+"";
            tr+=""+v.create_time+"";
            if (v.goods_statu==1){
              tr+="推荐";
            }else{
              tr+="不推荐";
            }
            tr+="";
            tr+="";
          })
          //将拼接好的tr赋给table表格,替换掉之前的数据
          $(‘table‘).html(tr);
        }
      })
    })

  (3).写后台代码
    public function fen(){
      //获取pyg
      $pay=Request::instance()->param(‘pay‘);
      //获取表单中的值
      $input=Request::instance()->param(‘input‘);
      //空数组,用于条件查询
      $where=[];
      //判断表单内容,如果有就放入where数组中
      if ($input){
        //此数组为模糊查询
        $where[‘goods_name‘]=[‘like‘,"%$input%"];
      }
      //因为截取是从数据下标开始,所以要将页码-1
      $pay=$pay-1;
      //每页数量
      $size=5;
      $model=new \app\test\model\Goods();
      //查询数据 $pay*$size为截取数据开始的下标 $size为截取长度
      $data=$model->join(‘type‘,‘t_id=type_id‘)->where($where)->limit($pay*$size,$size)->select();
      $data=collection($data)->toArray();
      //返回数据
      return json([‘code‘=>0,‘data‘=>$data,‘msg‘=>‘‘]);
    }

3.效果如下(由于本人太懒,搜索后分页的页码没有做,但搜索后分页的效果依旧存在,只是页码还是一开始的数量)

原文:https://www.cnblogs.com/dl1121/p/15221565.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐