麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > ThinkPHP > 正文

TP5實現表格拖動排序并保存到數據庫的方法(附代碼)

2024-09-09 15:20:30
字體:
來源:轉載
供稿:網友

本篇文章給大家帶來的內容是關于TP5實現表格拖動排序并保存到數據庫的方法(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

前一段時間修改了一個舊的項目,客戶要求我給表格重新排序,按醫生的職稱排序。因為客戶的這個項目是醫院的人事系統,考慮到整個醫院有幾千號人,要是一個個按客戶的要求排得累壞我的小腰...幸好這時我想起了可以利用jqueryUi插件實現這個功能。但是jqueryUi插件只能在當前頁面上排序,頁面一刷新又恢復原樣了。于是我就研究如何拖動排序并永久把排序保存到數據庫中,做了1小時,做出來了。這里記錄一下,如果有同學有更好的思路,請不吝賜教..

首先下載jqueryUi插件,網上一搜就要,這里略過。

下載完成后,引入頁面。加入一行代碼就可以:

  1. <script type="text/javascript" src="jquery-ui.js"></script> 
  2.  
  3. <script type="text/javascript"
  4.  
  5.   $(document).ready(function(){ 
  6.  
  7.     $("#sort tbody").sortable(); 
  8.  
  9. }); 
  10.  
  11. </script> 

需要注意的是,選擇器應該選中表格的tbody. sort方法中可以添加很多配置的參數,具體的可以查看這款插件的文檔。同樣網上一搜一大堆,比如菜鳥教程就有。現在只是實現了在當前頁面排序,但數據庫還是老樣子。下面是我的把排序保存到數據庫的方法。之前我的排序是按照數據表的ID值,默認倒序的,現在我可以給數據表中加一個sort字段,或者XX字段,代表排序的數字。 在每次拖動完成后,利用這款插件內置的update函數,通過ajax方式把排序完成的每個行的ID傳到后臺。在后臺控制器里接收后,遍歷,把排在第一行的數據的sort值改為鍵值+1.

比如排序完成后第一行的數據ID值為8,第二行的數據ID為6,第三行為2,后臺接收遍歷時,ID為8的數據肯定是第一個遍歷的,那該數據在foreach里面的鍵值肯定是0,即$k為0,那把它的排序改為$k+1即為0+1等于1.同理,第二個數據的sort就為$k+1即為2,以此類推.然后按sort值正序排列即可.

下面是前臺代碼:

  1. $("#sort tbody").sortable({ 
  2.  
  3.         update:function () { 
  4.  
  5.             var idArr = []; 
  6.  
  7.             $("input[name='id']").each(function () {//遍歷每一行的ID值 
  8.  
  9.                 idArr.push($(this).val());//把拍完序的數據ID依次推入數組 
  10.  
  11.             }) 
  12.  
  13.             $.ajax({ 
  14.  
  15.                 type: "POST"
  16.  
  17.                 dataType: "json"
  18.  
  19.                 url: "__URL__/staff/pinyong"
  20.  
  21.                 data:{idArr:idArr}, 
  22.  
  23.                 success:function (data) { 
  24.  
  25.                     layer.msg(data['msg'],{icon:1,time:2000}); 
  26.  
  27.                 }, 
  28.  
  29.                 error:function (request) { 
  30.  
  31.                     console.log(request); 
  32.  
  33.                 } 
  34.  
  35.             }); 
  36.  
  37.         } 
  38.  
  39.     }); 

這個是一個老項目,TP3寫的,所以我沒用TP5的寫法,TP5只需要把url地址改為{:url(...)}的寫法就行.

后臺代碼:(也是TP3的寫法,TP5只要用model方法取表模型,然后再改改save方法就可以)

  1. public function pinyong(){ 
  2.  
  3.  if (IS_POST) { 
  4.  
  5.       //前臺post方式傳數組的話,后臺必須指定接收格式才能接收,否則會報錯 
  6.  
  7.       $arr = I('idArr/a'); 
  8.  
  9.       foreach ($arr as $k => $v) { 
  10.  
  11.           M('pinyong')->where('id','eq',$v)->save(['sort'=>$k + 1]); 
  12.  
  13.       } 
  14.  
  15.       $this->success('排序成功'); 
  16.  
  17.   } else { 
  18.  
  19.       $this->display(); 
  20.  
  21.   } 

這樣,每次前臺拖動排序都會觸發update函數,然后就會把新排序的ID值用ajax傳到后臺,后臺接收后,按順序重新修改sort值就可以.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 在线天堂中文字幕 | 国产精品久久久久久久久久iiiii | 夜间福利网站 | 午夜精品在线视频 | 欧美精品一区自拍a毛片在线视频 | 国产成人免费精品 | 人人舔人人舔 | 中午字幕无线码一区2020 | 中国杭州少妇xxxx做受 | 亚洲影视在线 | 最新福利在线 | 美国av免费看 | 黄视频网站免费 | 超碰人人做人人爱 | 大逼逼影院 | 369看片你懂的小视频在线观看 | 国产羞羞视频在线免费观看 | 精品久久久一二三区播放播放播放视频 | 午夜精品影院 | 黄在线免费看 | 国产精品一区在线看 | 亚洲天堂字幕 | 日韩剧情片 | 91短视频版高清在线观看www | 九九黄色| 国产精品视频成人 | 一区二区三区在线观看免费视频 | 香蕉视频99 | 午夜神马电影网 | 久久精品视频一区 | 激情网站免费观看 | 午夜热门福利 | 色av综合在线 | 国产成人小视频在线观看 | xx53xx| 黑人三级毛片 | 日韩免费黄色 | 久久超| 手机视频在线播放 | 日本在线播放一区二区 | 精品国产一区二区三区四区阿崩 |