Yii2.0实现AJAX搜索、分页

//1.首先判断搜索的数据是否为空

$username = \Yii::$app->request->post('username');  //接收搜索的数
//2.定义一个Where条件 目的是让Sql语句 恒成立

$where = 1;

//3.判断数据是否存在,拼接搜索的语句。如果多条件搜索,则直接 and  连接 即可

if(!empty($username)){
            $where = " username like '%$username%'";
        }

//4.接收页码
        $page = \Yii::$app->request->post('pages');
        //判断当前页码是否存在
        $pages = isset($page) ? $page : 1 ;
        //计算总条数
        $count = Username::find()->count();
        //设置每一页显示的条数
        $pageSize = 3 ;
        //计算总页数
        $pageSum = ceil($count/$pageSize);
        //计算偏移量
        $offset = ($pages - 1)*$pageSize;
        //计算上一页 下一页
        $last = $pages<=1 ? 1 : $pages-1 ;
        $next = $pages>=$pageSum ? $pageSum : $pages+1 ;
        //拼接A链接
        $str = '';
        $str .= "<a href='javascript:void(0);' οnclick='page(1)'>首页</a>";
        $str .= "<a href='javascript:void(0);' οnclick='page($last)'>上一页</a>";
        $str .= "<a href='javascript:void(0);' οnclick='page($next)'>下一页</a>";
        $str .= "<a href='javascript:void(0);' οnclick='page($pageSize)'>尾页</a>";
        //查询分页后的数据信息
        $sql = "select * from username where $where limit $offset,$pageSize";
        $userInfo = Username::findBySql($sql)->asArray()->all();
<pre name="code" class="php">       //搜索后关键字标红
      foreach($userInfo as $key => $value){
         $userInfo[$key]['username'] = str_replace($username,"<font color='red'>$username</font>",$value['username']);
      }
<pre name="code" class="php">
  //渲染模板
     return $this->renderPartial('index',['userInfo'=>$userInfo,'page'=>$str]);
 
 
 
 二,HTML页面展示如下 

1.Script标签中书写如下

<script>
        function page(page){
            //获取搜索的数据
            var username = $("#username").val();
            //发送AJAX请求
            $.ajax({
             url:"?r=index/index",
             data:{pages:page,username:username},
             type:"POST",
             success:function(msg){
                    $("#body").html(msg);
                }
             });
        }
    </script>

//直接输出页码即可

<?= $page;?>

注意事项 : 点击搜索和分页,所触发的函数都是Page 方法。

<button οnclick="page()">搜索</button>

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值