layui 数组表格 分页问题,如果返回是全部数据,layui分页就不能用,
因为layui是通过接口只会取得需要的那一页的数据,不会多返回其它数组
一、用例子说明:
4.5 获取课堂录制下的所有课件
展示互动返回直播的所有回放列表,展示互动是直接返回该直播的所有回放列表,不能读哪一页数据返回那一页数据
所以要分页,就要用到PHP本身的数组分页功能
1.模板
直播加放视频列表
2.控制器
/**
* 回放列表-服务器返回的数据 观看直播回放
*/
public function look_live_video_list(){
$id=input('id');
$page=input('page');
$limit=input('limit');
$this->assign('id',$id);
$action=input('action');
if(!$id){
echo "错误:必要参数不能为空!";die;
}
if($action=="liveroomtable"){
//判断是否已经生成回放/取得实时课堂ID
$rs_live=Db::name('live_course')->where('id',$id)->find();
//先判断是那个直播供应商 1展视互动 2保利威视
$live_type=checkRepeat('system_setup',5,1,'value',1);//点播初始化
if($live_type==1){// 1展视互动
$roomid=$rs_live['field1'];//实时课堂ID
if(!$roomid){
echo "错误:直播课堂ID为空,没有生成直播间!";die;
}
//4.5 获取课堂录制下的所有课件 取得服务器上的课件ID
//取得帐号、密码、接口路径
$loginName=checkRepeat('system_setup',2,1,'value',1);//展视互动 loginName
$password=checkRepeat('system_setup',3,1,'value',1);//展视互动 password
$url_1=checkRepeat('system_setup',4,1,'value',1);//展视互动 接口网址
//获取课堂录制下的所有课件 只要取得课件ID
// $url = 'http://jysjsz.gensee.com/integration/site/training/room/deleted';
$url1=$url_1;//http://jysjsz.gensee.com/integration/site/
$url2="training/courseware/list";//接口路径 获取课堂录制下的所有课
$url =$url1.$url2;//组合成完整接口网址
//dump($password);
$post_data = array (
'loginName' => $loginName,//登录名
'password' => $password,//密码
'roomId' => $roomid,//实时课堂ID 删除专用
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 设置请求为post类型
curl_setopt($ch, CURLOPT_POST, 1);
// 添加post数据到请求中
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
// 执行post请求,获得回复
$response= curl_exec($ch);
curl_close($ch);
//echo $response;
//错误信息提示
if ($response === FALSE) {//没有取得返回数据
echo "cURL 具体出错信息: " . curl_error($ch);die;
}
//取得返回数组
$jsonStr=$response;
$arr = json_decode($jsonStr, true);
$code = $arr['code'];//返回结果代码
$count =count($arr['coursewares']);
// $live_12 =$arr['coursewares'][0]['number'];//课件编号
// $live_13 =$arr['coursewares'][0]['url'];//课件的 URL
if($code!=0){//0等于成功
echo "错误".$code.":获取课件ID失败,原因:".$arr['message'];die;
//exit;
}
//取得录播记录数组
$array = $arr['coursewares'];
$data=page_array($limit,$page,$array,0);
//$count=1000;
json(0,'数据返回成功',$count,$data);
//dump($arr) ;die;
// return $arr;die;
}elseif($live_type==2){//2保利威视
}else{
}
}
return view(look_live_video);
}
注意:php数组分页函数
$data=page_array($limit,$page,$array,0);
/**
* 数组分页函数 核心函数 array_slice
* 用此函数之前要先将数据库里面的所有数据按一定的顺序查询出来存入数组中
* $count 每页多少条数据
* $page 当前第几页
* $array 查询出来的所有数组
* order 0 - 不变 1- 反序
*/
function page_array($count,$page,$array,$order){
global $countpage; #定全局变量
$page=(empty($page))?'1':$page; #判断当前页面是否为空 如果为空就表示为第一页面
$start=($page-1)*$count; #计算每次分页的开始位置
if($order==1){
$array=array_reverse($array);
}
$totals=count($array);
$countpage=ceil($totals/$count); #计算总页面数
$pagedata=array();
$pagedata=array_slice($array,$start,$count);
return $pagedata; #返回查询数据
}
数组分页引用:https://blog.csdn.net/jinhwu/article/details/51940039