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);" onclick="page(1)">首页</a>"; $str .= "<a href="javascript:void(0);" onclick="page($last)">上一页</a>"; $str .= "<a href="javascript:void(0);" onclick="page($next)">下一页</a>"; $str .= "<a href="javascript:void(0);" onclick="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 onclick="page()">搜索</button>
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 数组的自动扩容问题
- 下一篇: C语言动态申请二维数组【用new函数】