thinkphp5 列表页数据分页查询3-带搜索条件
先加载模板然后在前端HTML页面请求数据
/** * 加载列表页模板 * @author 冯广福 */ public function index() { LogWriteService::write('任务中心', '查看任务模板','查看'); $view = new View(); return $view->fetch(); } /** * 渲染列表页数据 * @author fgf <2018-01-24 10:07:00> */ public function index2() { $index = $_POST['index']; $pagenum = $_POST['pagenum']; // 一页显示多少个 $index = ($index - 1) * $pagenum; $keyname = $_POST['keyname']; $begintime = $_POST['begintime']; $endtime = $_POST['endtime']; /*拼接搜索条件*/ $map = array(); /*时间段--搜索条件*/ if ($begintime) { $begintime = $begintime . ' 00:00:01'; $endtime = $endtime . ' 23:59:59'; $map['a.addtime'] = ['between', [$begintime, $endtime]]; } /*资产类型--搜索条件*/ if ($keyname) { $map['a.template_name'] = ['like', "%" . $keyname . "%"]; } /*查询列表数据*/ $list = Db::table('fc_template_name')->alias('a') ->field('a.*,t.tasktype,c.cycle,c.num') ->join('fc_tasktype t', 't.id=a.tasktype_id', 'left') ->join('fc_task_cycle c', 'c.id=a.taskcycle_id', 'left') ->where($map) ->order('a.id asc') ->limit($index, $pagenum) ->select(); //统计总条数 $count = Db::table('fc_template_name')->alias('a') ->where($map) ->count(); echo json_encode(array($list, $count)); }
HTML页面代码
/** * 搜索 * @author fgf <2018-01-24 09:57:00> */ function btn_search() { index2(1); } /** * 请求列表数据 * @author fgf <2018-01-24 09:58:00> */ var serialnum = ''; index2(1); // 默认执行获取数据 function index2(index){ var p = 0; var pagenum = 10; var keyname = $('#keyname').val(); var begintime = $('#begintime').val(); var endtime = $('#endtime').val(); $.ajax({ url: "{:url('Tasktemplate/index2')}", type: 'POST', data:{ index:index, pagenum:pagenum, keyname:keyname, begintime:begintime, endtime:endtime, }, async: false, dataType:'json', success: function (data) { // console.log(data); var html = ''; p = data[1]; for(var i=0;i<data[0].length;i++){ html += '<tr><td style="text-align:center;">'; html += '<input class="list-check-box" type="checkbox" value="'+data[0][i].id+'" name="brandid"/></td>'; html += '<td style="text-align:center;">'+(++serialnum)+'</td>'; html += '<td style="text-align:center;">'+data[0][i].template_name+'</td>'; if(data[0][i].tasktype){ html += '<td style="text-align:center;">'+data[0][i].tasktype+'</td>'; }else{ html += '<td style="text-align:center;">'+'暂无'+'</td>'; } if (data[0][i].cycle) { if(data[0][i].num !=0){ html += '<td style="text-align:center;">'+data[0][i].num+data[0][i].cycle+'</td>'; }else{ html += '<td style="text-align:center;">'+data[0][i].cycle+'</td>'; } }else{ html += '<td style="text-align:center;">'+'暂无'+'</td>'; } if (data[0][i].tips) { html += '<td style="text-align:center;">'+data[0][i].tips+'</td>'; }else{ html += '<td style="text-align:center;">'+'暂无'+'</td>'; } if (data[0][i].prize) { html += '<td style="text-align:center;">'+data[0][i].prize+'</td>'; }else{ html += '<td style="text-align:center;">'+'暂无'+'</td>'; } if (data[0][i].starttime) { html += '<td style="text-align:center;">'+data[0][i].starttime+'</td>'; }else{ html += '<td style="text-align:center;">'+'暂无'+'</td>'; } if (data[0][i].endtime) { html += '<td style="text-align:center;">'+data[0][i].endtime+'</td>'; }else{ html += '<td style="text-align:center;">'+'暂无'+'</td>'; } html += '<td style="text-align:center;">'; html += '<a><span onclick="openRightBox(3,'+data[0][i].id+')" class="ht_arrow">修改</span></a>'; html += '<span class="text-explode">|</span>'; html += '<span><a style="color:red;" href="javascript:void(0)" data-update="'+ data[0][i].id +'" data-field="delete" data-action="{:url("tasktemplate/del")}">删除</a></span>'; html += '</td><td style="text-align:center;">'; html += '<i style="color: #989898;" title="详情" class="layui-icon ht_arrow" onclick="openRightBox(2,'+data[0][i].id+')"></i></td></tr>'; } $('#list').html(html); $('#countnum').text('总共'+p+'项'); if(p>10){ $("#countnum").show() }else{ $("#countnum").hide() } window.form.render(); } }); if(index != 1){ return; } var num = Math.ceil(p/pagenum); layui.use(['laypage', 'layer'], function(){ var laypage = layui.laypage; laypage({ cont: 'page1' ,pages: num //总页数 ,groups: 5 //连续显示分页数 ,skip: true ,skin: '#1E9FFF' ,jump: function(obj, first) { //得到了当前页,用于向服务端请求对应数据 var curr = obj.curr; serialnum = curr - 1; if(serialnum>0){ serialnum = serialnum*10; } if ( !first ) { index2(curr) } } }); }); }