Yii2.0实现AJAX搜索分页
Posted wangjiuwang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii2.0实现AJAX搜索分页相关的知识,希望对你有一定的参考价值。
//1.首先判断搜索的数据是否为空
[php] view plain copy- $username = \\Yii::$app->request->post('username'); //接收搜索的数
//2.定义一个Where条件 目的是让Sql语句 恒成立
[php] view plain copy
- $where = 1;
//3.判断数据是否存在,拼接搜索的语句。如果多条件搜索,则直接 and 连接 即可
[php] view plain copy- if(!empty($username))
- $where = " username like '%$username%'";
[php] view plain copy
- //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">
[php] view plain copy
- return $this->renderPartial('index',['userInfo'=>$userInfo,'page'=>$str]);
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>
以上是关于Yii2.0实现AJAX搜索分页的主要内容,如果未能解决你的问题,请参考以下文章