Laravel5.1 与 Laypage 结合进行分页
demo地址:http://lara.ytlwin.top/orm
路由
Route::match(array('get','post'),'/orm','StuController@orm');
控制器
<?php namespace App\Http\Controllers; use Illuminate\Http\Request;
use App\Http\Requests;
use App\User; //user表的模型
use App\Phone; //phone表的模型 class StuController extends Controller
{
/*
*@brief 搜索 分页
*/
private $current_page; //私有属性 当前页
private $page_size = 5; //私有属性 每页条数 public function __construct(Request $request) {
$this->current_page = $request->input('current_page', 1);
}
public function orm(Request $request)
{
$search_text = $request->input('search_text','');
$pay_type = intval($request->input('pay_type',6));
if($search_text == '')
{
$count = User::join('phone','phone.user_id','=','user.user_id','left')->count();
$page_count = ceil($count/$this->page_size);
// dd($page_count);
$data = User::join('phone','phone.user_id','=','user.user_id','left')->get();
}else{
// 关联
$count = User::join('phone','phone.user_id','=','user.user_id','left')->with('phone')->where('username','like','%'.$search_text.'%')->count();
$page_count = ceil($count/$this->page_size);
$data = User::join('phone','phone.user_id','=','user.user_id','left')->with('phone')->where('username','like','%'.$search_text.'%')->get();
} if($pay_type !== 6 )
{
$data = collect($data) -> where('pay_type',$pay_type); //对已有数据进行处理支付类型筛选
} $count = $data->count(); //多少数据
$page_count = ceil($count/$this->page_size); //多少页 //collect和slice切片选择页数内容
$data = collect($data)->slice(($this->current_page -1)*$this->page_size,$this->page_size); return view('phone',compact('data','search_text','pay_type'))
->with('current_page', $this->current_page)
->with('page_count', $page_count);
} }
视图层
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>电话联系人</title>
<script type="text/javascript" src="{{asset('/jquery.min.js')}}"></script>
<script type="text/javascript" src="{{asset('/laypage/laypage.js')}}"></script>
<script type="text/javascript" src="{{asset('/layer/layer.js')}}"></script> </head>
<body>
<input type="text" name="search_text" id="search_text" placeholder="请输入姓名搜索" @if($search_text != '') value="{{$search_text}} @endif"><button name="search_btn" id="search_btn" type="submit">搜索</button>
<span>
<select name="pay_type" id="pay_type" onchange="pay()">
<option value="6" @if($pay_type==6)selected="selected" @endif>全部</option>
<option value="0" @if($pay_type==0)selected="selected" @endif>在线支付</option>
<option value="1" @if($pay_type==1)selected="selected" @endif>快递支付</option>
</select>
</span>
<div style="height:15px;"></div>
<table>
<thead>
<tr>
<th width="40">选择</th>
<th width="40">序号</th>
<th width="40">姓名</th>
<th width="60">手机</th>
<th width="80">支付方式</th>
<th width="80">发货状态</th>
</tr>
</thead> @foreach($data as $key=>$d)
<tbody>
<tr>
<th width="40"><input type="checkbox" name="like[]"></th>
<th width="40">{{$key+1}}</th>
<th width="40">{{$d->username}}</th>
<th width="60">{{$d->phone}}</th>
<th width="120">
@if($d->pay_type==0)
在线支付
@endif
@if($d->pay_type==1)
快递到付
@endif
</th>
<th width="60">
@if($d->is_send==0)
未发
@endif
@if($d->is_send==1)
已发
@endif
</th>
</tr>
</tbody>
@endforeach </table>
<div class="row cl" style="margin-top: 20px;float:left;" >
<label class="form-label col-1 text-l" id="record">共 {{$page_count}} 页</label>
<div class="formControls col-11 text-r" id="page" style="float:left;">
</div>
</div> <script type="text/javascript">
// alert($);
var search_btn = $('#search_btn');
var search_text = $('#search_text'); var pay_type = ''; $(function(){
if (parseInt("{{$page_count}}") > 0) {
pay_type = $('#pay_type option:selected').val();
laypage({
cont: 'page',
pages: '{{$page_count}}', //可以叫服务端把总页数放在某一个隐藏域,再获取。假设我们获取到的是18
curr: function() { //通过url获取当前页,也可以同上(pages)方式获取
var page = "{{$current_page}}";
return page;
}(),
jump: function(e, first) { //触发分页后的回调
if (!first) { //一定要加此判断,否则初始时会无限刷新
location.href = GetUrlRelativePath() + '?search_text=' + search_text.val().trim() + '&pay_type=' + pay_type + '¤t_page=' + e.curr;
}
}
});
}
}); search_btn.click(function(){
pay_type = $('#pay_type option:selected').val();
location.href = GetUrlRelativePath() + '?search_text=' + search_text.val().trim()+ '&pay_type=' + pay_type; //重定向到地址 带参数进行查询
});
function pay()
{
pay_type = $('#pay_type option:selected').val();
location.href = GetUrlRelativePath() + '?search_text=' + search_text.val().trim() + '&pay_type=' + pay_type;
} console.log(GetUrlRelativePath());
function GetUrlRelativePath()
{
var url = document.location.toString(); //得出当前地址
var arrUrl = url.split("//"); //以//为标识 分割为两个数组 [http:,haha.com/orm] var start = arrUrl[1].indexOf("/"); // 下标为1 的即为去除http头的 域名部分 indexOf('') 某个字符首次出现的位置 从0开始计数 / 在第8
var relUrl = arrUrl[1].substring(start); //substring(n) 去除0-(n-1) 的字符串 if(relUrl.indexOf("?") != -1)
{
relUrl = relUrl.split("?")[0]; //去除参数
}
return relUrl;
} //得出地址 </script> </body>
</html>
效果图
Laravel5.1 与 Laypage 结合进行分页的更多相关文章
- TP3.23 与Laypage 结合进行分页
demo地址:http://tp.ytlwin.top 控制器 <?php namespace Home\Controller; use Think\Controller; class Inde ...
- laypage分页控件使用方法
laypage是一款非常简单易用的分页控件,由于最近项目中使用到了,简单记录一下使用方法 1.引入laypage所需的js和css文件 <link href="js/laypage/1 ...
- Flask学习之旅--分页功能:分别使用 flask--pagination 和分页插件 layPage
一.前言 现在开发一个网站,分页是一个很常见的功能了,尤其是当数据达到一定量的时候,如果都显示在页面上,会造成页面过长而影响用户体验,除此之外,还可能出现加载过慢等问题.因此,分页就很有必要了. 分页 ...
- 基于layPage分页插件浅析两种分页方式
最近在开发过程中经常用到分页,今天挤出些时间来捋一捋自己的经验 在web开发中,一般显示数据列表页时,我们会用到分页控件来显示数据.采用分页一般基于两种不同的需求,一种是数据量不算很大,但是在页面展示 ...
- laypage 物理分页与逻辑分页实例
前言 以下介绍摘自 layui官网laypage layPage 致力于提供极致的分页逻辑,既可轻松胜任异步分页,也可作为页面刷新式分页.自 layui 2.0 开始,无论是从核心代码还是API设计, ...
- layui分页
毕业已经两年,期间经历了很多.一个人欢笑与哭泣,在墙角.在路边.在床上.每天搭乘首班车来到公司,每天无数次反省自己,每天每天再问自己为什么活着. 一.下载并引用css和js 地址:点我 <lin ...
- layui分页的使用心得
// 执行页面加载的函数 loadData(1) // 每页条数 var limit = 5; // 渲染页面 function loadData(curr){ $.ajax({ type:" ...
- Layui的一点小理解(上)
首先声明这是个人的一点理解,如有不对之处请指正,以下的例子有在官网上看到的,有的是自己写的.还是老规矩最后会附上官网的,如有不明白之处,请查看文档或留言. 既然说Layui,当然要简单的介绍以下什么是 ...
- layui 的基本使用介绍
全局配置 layui.config({ dir: '/res/layui/' //layui.js 所在路径(注意,如果是script单独引入layui.js,无需设定该参数.),一般情况下可以无视 ...
随机推荐
- 6.简单提取小红书app数据(简单初步试采集与分析)-1
采集小红书数据爬虫:1.本来是要通过app端的接口去直接采集数据,但是app接口手机端设置本地代理这边开启抓包后就不能正常访问数据.所以就采用了微信小程序里的小红书app接口去采集数据. 2.通过 f ...
- 25.安装配置phantomjs
1.官网下载windows版本:http://phantomjs.org/download.html2.下载完解压,将PhantomJS可执行文件配置到环境变量里.比如: 将 E:\Soft\soft ...
- Redis、MongoDB及Memcached的区别
Redis(内存数据库) 是一个key-value存储系统(布式内缓存,高性能的key-value数据库).和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).l ...
- Centos 7 下创建LVM流程
https://www.cnblogs.com/ssslinppp/p/5853312.html
- spark高级编程
启动spark-shell 如果你有一个Hadoop 集群, 并且Hadoop 版本支持YARN, 通过为Spark master 设定yarn-client 参数值,就可以在集群上启动Spark 作 ...
- 使用STM32的USART的同步模式Synchronous调戏SPI[2] 【实现spi 9bit】
[原创出品§转载请注明出处] 出处:http://www.cnblogs.com/libra13179/p/7064533.html 上回说道使用USART的来模拟SPI通讯.说说一下我什么写这个的原 ...
- APP-1-相关介绍及资料
一年前研究了下MUI框架,也做了一些简单的功能,将整个过程整理下.. 1.Hbuilder官网 http://www.dcloud.io/ 2.MUI前端框架 http://www.dcloud.io ...
- CTags配好后仍找不到函数定义的问题
若把CTags的Setting-User配好后,Navigation to Defination一个类或者函数发现仍无法跳转时,可以把需要查找的文件夹拉进sublime任一窗口中再试试. 因为CTag ...
- matt cutts : try something new for 30 days
30 天尝试新事物matt cutts : try something new for 30 days[小计划帮你实现大目标] 是否有些事情, 你一直想去做, 但就是没有实现?马特 ?卡茨建议: 尝试 ...
- numpy.distutils.system_info.NotFoundError: no lapack/blas resources found问题解决
操作环境 Python3.6 + Windows7 问题现象 利用pip自动安装seaborn/numpy/scipy(pip install seaborn)模块失败,提示numpy.distu ...