Yii2.0实现AJAX搜索、分页
2016-07-25 12:38
399 查看
//1.首先判断搜索的数据是否为空
[php]
view plain
copy
$username = \Yii::$app->request->post('username'); //接收搜索的数
[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);' 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">
//渲染模板
[php]
view
4000
plain
copy
return $this->renderPartial('index',['userInfo'=>$userInfo,'page'=>$str]);
二,HTML页面展示如下
1.Script标签中书写如下
[php]
view plain
copy
<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 方法。
[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);' 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">
//渲染模板
[php]
view
4000
plain
copy
return $this->renderPartial('index',['userInfo'=>$userInfo,'page'=>$str]);
二,HTML页面展示如下
1.Script标签中书写如下
[php]
view plain
copy
<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>
相关文章推荐
- STP工作过程分析<欢迎指正>
- 格式化日期,刚刚,几秒前,几分钟前,几小时前.....
- 文件大小单位实现,B,KB,MB,GB,TB.....
- php封装curl的post和get类
- 4000 PHP木马的防范方法
- 简单实现MVC
- php发送scoket与sparkStreaming
- php根据二维数组中的某个值去除该数组。
- phpexcel读取excel表格文件
- php中json_decode返回数组或对象
- php下载代码
- 嵌入式开发12天(虚拟机的环境配置,目录的快捷方式,交叉编译工具的安装,tftp的安装,nfs的安装)
- PHP截取中文无乱码函数——cutstr
- PHP中$_SERVER的详细参数与说明
- PHP 中转换 SGML 类语言为真实中文字符
- NoSuchMethodErroe:AnnotationUtils.postProcessAnnotationAttributes
- phpBB论坛 代码 语法高亮 模块 Codebox Plus
- Thinkphp url重写规则及wamp配置
- PHP基本知识收集
- Yii2中Restful API原理实例分析