国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - ThinkPHP整合datatables實(shí)現(xiàn)服務(wù)端分頁的示例代碼

ThinkPHP整合datatables實(shí)現(xiàn)服務(wù)端分頁的示例代碼

2019-10-22 10:54csdn_chenzhuangwei PHP教程

下面小編就為大家分享一篇ThinkPHP整合datatables實(shí)現(xiàn)服務(wù)端分頁的示例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

最近做東西有一個(gè)需求,因?yàn)閿?shù)據(jù)量很大,在這里我決定使用datatables服務(wù)端分頁,同時(shí)還需要傳遞查詢條件到服務(wù)端。在網(wǎng)上搜索的大部分文章都感覺有些誤差,于是自己封裝了一下,主要配置/工具為:

服務(wù)端:php(使用thinkphp)

頁面樣式來自于H-ui框架(datatables版本為1.10.0)

主要修改(databases)配置項(xiàng)為:

1) bProcessing:true 使用ajax源

2) serverSide:true 使用服務(wù)端分頁

3) createdRow:function(){} 回調(diào)函數(shù),用于添加事件或類名

4) aoColumns 用于處理、顯示數(shù)據(jù),其中render屬性用于自定義列

1.datatables 的js代碼為:

$('.table-sort').dataTable({
 processing: true,
  serverSide: true,
  ajax: {
   "url":"{:U('Msg/index')}",
   "data":function(d){ //額外傳遞的參數(shù)
    d.mintime = $('#logmin').val();
    d.maxtime = $('#logmax').val();
   }
  },
  bStateSave: true,//狀態(tài)保存
  aLengthMenu : [20, 30, 50, 100, 150],
  bProcessing : true,
  bAutoWidth: false,
  bFilter : true, //是否啟動(dòng)過濾、搜索功能
  bInfo : true, //是否顯示頁腳信息,DataTables插件左下角顯示記錄數(shù) 
  createdRow: function ( row, data, index ) {
   $(row).addClass('text-c');
   $('#count').html(data.recordsFiltered);
  },
  aoColumns: [
   {
    "sClass": "text-center",
    "data": "id",
    "render": function (data, type, full, meta) {
     return '<input type="checkbox" name="select" value="' + data + '" />';
    },
    "bSortable": false
   },
   { "mData": "id" },
   { "mData": "fromnickname"},
   { "mData": "content" },
   { "mData": "msgtype" },
   { "mData": "time"},
   {
    "sClass": "text-center",
    "data": "id",
    "render": function (data, type, full, meta) {
     html = '<a     html += '<a style="text-decoration:none" class="ml-5" onClick="signDel(this,'+ data +')" href="javascript:;" rel="external nofollow" rel="external nofollow"     return html;
    },
    "bSortable": false
   }
  ]
});

2.服務(wù)端方面:

控制器:
接收參數(shù)如下:
draw    前端傳過來的值,原值返回,用于驗(yàn)證
mintime、maxtime 自定義參數(shù)(時(shí)間)
search.value  datatables搜索框參數(shù),用于查詢篩選
order.0.column  要排序的單元格(從0開始,字段需要自己設(shè)置)
order.0.dir   排序(升序、降序)
start    起始條數(shù)(第幾條開始)
length    查詢長度
返回的數(shù)據(jù)如下:
draw    返回前端傳過來的值
recordsTotal  記錄總條數(shù)
recordsFiltered  條件篩選后的記錄總條數(shù)
data    服務(wù)端查詢的數(shù)據(jù)
返回?cái)?shù)據(jù)形式:json

3.服務(wù)端后端完整代碼如下:

1)控制器代碼:

public function index()
{
 if(IS_AJAX){
  $list = D('Msg')->getData(I('get.'));
  $this->ajaxReturn($list);
 }
 $this->display();
}

2) Model層代碼:(*其中,dealTime方法主要用于處理時(shí)間段)

public function getData($data)
{
 //獲取Datatables發(fā)送的參數(shù) 必要
 $draw = $data['draw']; //這個(gè)值直接返回給前臺(tái)
 //獲取時(shí)間區(qū)間
 $timeArr['mintime'] = $data['mintime'];
 $timeArr['maxtime'] = $data['maxtime'];
 $where = $this->dealTime($timeArr);
 //搜索框
 $search = trim($data['search']['value']); //獲取前臺(tái)傳過來的過濾條件 
 if(strlen($search) > 0) {
  $where['id|fromnickname|content|msgtype'] = array('like','%'.$search.'%');
 }
 //定義查詢數(shù)據(jù)總記錄數(shù)sql
 $recordsTotal = $this->count();
 //定義過濾條件查詢過濾后的記錄數(shù)sql
 $recordsFiltered = $this->where($where)->count();
 //排序條件
 $orderArr = [1=>'id', 2=>'fromnickname', 3=>'content', 4=>'msgtype', 5=>'time'];
 //獲取要排序的字段
 $orderField = (empty($orderArr[$data['order']['0']['column']])) ? 'id' : $orderArr[$data['order']['0']['column']];
 //需要空格,防止字符串連接在一塊
 $order = $orderField.' '.$data['order']['0']['dir'];
 //按條件過濾找出記錄
 $result = [];
 //備注:$data['start']起始條數(shù) $data['length']查詢長度
 $result = $this->field('id,fromnickname,content,msgtype,time')
     ->where($where)
     ->order($order)
     ->limit(intval($data['start']), intval($data['length']))
     ->select();
 //處理數(shù)據(jù)
 if(!empty($result)) {
  foreach ($result as $key => $value) {
   $result[$key]['time'] = date("Y-m-d H:i:s",$value['time']);
   $result[$key]['recordsFiltered'] = $recordsFiltered;
  }
 }
 //拼接要返回的數(shù)據(jù)
 $list = array(
  "draw" => intval($draw),
  "recordsTotal" => intval($recordsTotal),
  "recordsFiltered"=>intval($recordsFiltered),
  "data" => $result,
 );
 return $list;
}

3) 實(shí)現(xiàn)自定義ajax搜索

1. 在WdatePicker中添加onpicked回調(diào)函數(shù)
2. 執(zhí)行table.fnFilter(),其中table為datatables對(duì)象

以WdatePicker插件為例(input框類似,綁定onchange事件即可):

<input type="text" onfocus="WdatePicker({maxDate:'#F{ $dp.$D(\'logmax\')||\'%y-%M-%d\'}', onpicked:function(){table.fnFilter();}})" name="mintime" id="logmin" class="input-text Wdate" style="width:120px;">

3. datatables中ajax屬性中data屬性定義額外要傳遞的參數(shù)

例子:

ajax: {
  "url":"{:U('Msg/index')}",
  "data":function(d){ //額外傳遞的參數(shù)
   d.mintime = $('#logmin').val();
   d.maxtime = $('#logmax').val();
  }

4) 代碼截圖:

a. html頁面

ThinkPHP整合datatables實(shí)現(xiàn)服務(wù)端分頁的示例代碼

b.js部分

ThinkPHP整合datatables實(shí)現(xiàn)服務(wù)端分頁的示例代碼

以上這篇ThinkPHP整合datatables實(shí)現(xiàn)服務(wù)端分頁的示例代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 黄色免费在线看 | 午夜视频免费在线观看 | 亚洲 欧美 精品 | 国产欧美精品一区二区三区四区 | 亚洲激情av | 亚洲第一成av人网站懂色 | 国产成人在线一区二区 | 亚洲欧美中文字幕 | 亚洲视频在线观看 | 亚洲中字幕 | 亚洲欧洲久久 | 一区自拍| 亚洲精品一区在线观看 | 亚洲h| 成人免费视频网 | 99视频在线免费观看 | 色视频网| 欧美激情一区二区三区 | 国产人成精品一区二区三 | 免费成人高清 | www.涩涩视频| 在线亚洲电影 | 欧美性久久 | 黄色在线观看网址 | 美女视频一区二区三区 | 日韩成人免费av | 日本二区| 欧美色欧美亚洲另类七区 | 噜噜噜噜狠狠狠7777视频 | 欧美影| 黄色片免费观看网站 | 精品国产一区二区三区在线观看 | 日韩在线一区二区三区免费视频 | 中文字幕av亚洲精品一部二部 | 久久69精品久久久久久久电影好 | 久久久天堂国产精品 | 国内精品久久久久久久影视简单 | 伊人久久综合影院 | 日韩成人在线一区 | 寡妇激情毛片免费视频 | 午夜精品久久久久久久男人的天堂 |