最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php接口實現(xiàn)拖拽排序功能

 更新時間:2018年04月23日 14:02:06   作者:chriiess  
列表拖拽排序是一個很常見的功能,在后端接口處理中經常會用到,今天小編給大家?guī)砹藀hp接口實現(xiàn)拖拽排序功能,感興趣的朋友一起看看吧

列表拖拽排序是一個很常見的功能,但是后端接口如何處理卻是一個令人糾結的問題

如何實現(xiàn)才能達到效率最高呢?

先分析一個場景,假如有一個頁面有十條數(shù)據(jù),所謂的拖拽就是在這十條數(shù)據(jù)來來回回的拖,但是每次拖動都會影響到其他數(shù)據(jù)例如把最后一條拖到最前面,那么后面九條就自動往后移,反之也是,嗯~~~

先想象一下,排序號是固定的,就好像有十把椅子,每個椅子都是固定在那里的,移動的是上面的人,這樣就不會影響到其他頁面的數(shù)據(jù)了而且每個人換的也是之前其他人的桌椅號碼,這樣也不用去想到底要加多少才能排在哪里。

接口設計:

//$ids 這十條數(shù)據(jù)的id集合,逗號隔開的字符串
//$oldIndex 原始位置,從0開始算
//$newIndex 要拖動的位置
function dragSort($ids,$oldIndex,$newIndex)
{
  //保證查找出來的數(shù)據(jù)跟前臺提交的順序一致,這里要order by field
  //id 主鍵 sort 排序值
  $sql = "select id,sort from 表名字 where id in ($ids) order by field(id, " . $ids . ") ";
  $list = "這里省略,就是去數(shù)據(jù)庫找嘛";
  //id集合
  $idArr  = [];
  //排序集合
  $sortArr = [];
  foreach ($list as $item) {
    $idArr[]  = $item['id'];
    $sortArr[] = $item['sort'];
  }
  //記錄要拖動的id
  $oldValue = $idArr[$oldIndex];
  //刪除這個要拖動的id
  unset($idArr[$oldIndex]);
  //插入新的位置,并自動移位
  array_splice($idArr, $newIndex, 0, $oldValue);
  //重新設置排序
  $set = [];
  for ($i = 0; $i < count($idArr); $i++) {
     $set[$i]['id']  = $idArr[$i];
     $set[$i]['sort'] = $sortArr[$i];
   }
  //保存到數(shù)據(jù)庫省略
}

總結

以上所述是小編給大家介紹的php接口實現(xiàn)拖拽排序功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • Yii使用CLinkPager分頁實例詳解

    Yii使用CLinkPager分頁實例詳解

    這篇文章主要介紹了Yii使用CLinkPager分頁的方法,需要的朋友可以參考下
    2014-07-07
  • php圖片水印添加、壓縮、剪切的封裝類實現(xiàn)

    php圖片水印添加、壓縮、剪切的封裝類實現(xiàn)

    這篇文章主要介紹了php圖片水印添加,壓縮,剪切的封裝類實現(xiàn)方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-09-09
  • thinkPHP5框架路由常用知識點匯總

    thinkPHP5框架路由常用知識點匯總

    這篇文章主要介紹了thinkPHP5框架路由常用知識點,整理匯總了thinkPHP5框架路由相關概念、原理及操作技巧,需要的朋友可以參考下
    2019-09-09
  • ThinkPHP5.0框架使用build 自動生成模塊操作示例

    ThinkPHP5.0框架使用build 自動生成模塊操作示例

    這篇文章主要介紹了ThinkPHP5.0框架使用build 自動生成模塊操作,結合實例形式分析了thinkPHP5使用build自動生成模塊的具體步驟、方法與相關操作注意事項,需要的朋友可以參考下
    2019-04-04
  • phpstorm遠程連接服務器并實時更新發(fā)布代碼(thinkphp6.0.7)

    phpstorm遠程連接服務器并實時更新發(fā)布代碼(thinkphp6.0.7)

    這篇文章主要介紹了phpstorm遠程連接服務器并實時更新發(fā)布代碼(thinkphp6.0.7),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Laravel認證原理以及完全自定義認證詳解

    Laravel認證原理以及完全自定義認證詳解

    最近在學習laravel框架,所以下面這篇文章主要給大家介紹了關于Laravel認證原理以及完全自定義認證的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-07-07
  • ThinkPHP3.1新特性之內容解析輸出詳解

    ThinkPHP3.1新特性之內容解析輸出詳解

    以往版本的ThinkPHP對于模板文件保存在數(shù)據(jù)庫里面的情況下,無法進行模板文件讀取的。這篇文章主要介紹了ThinkPHP3.1新特性的內容解析輸出,需要的朋友可以參考下
    2014-06-06
  • PHP錯誤Warning: Cannot modify header information - headers already sent by解決方法

    PHP錯誤Warning: Cannot modify header information - headers alr

    這篇文章主要介紹了PHP錯誤Warning: Cannot modify header information - headers already sent by解決方法,需要的朋友可以參考下
    2014-09-09
  • PHP獲取頁面執(zhí)行時間的方法(推薦)

    PHP獲取頁面執(zhí)行時間的方法(推薦)

    這篇文章主要介紹了PHP獲取頁面執(zhí)行時間的方法(推薦)的相關資料,需要的朋友可以參考下
    2016-12-12
  • PHP將URL轉換成短網(wǎng)址的算法分享

    PHP將URL轉換成短網(wǎng)址的算法分享

    短網(wǎng)址(Short URL)顧名思義就是在形式上比較短的網(wǎng)址。在Web 2.0的今天,不得不說這是一個潮流。目前已經有許多類似服務,借助短網(wǎng)址您可以用簡短的網(wǎng)址替代原來冗長的網(wǎng)址,讓使用者可以更容易的分享鏈接,下面來看看如何用PHP實現(xiàn)這個功能,有需要的朋友們可以參考。
    2016-09-09

最新評論

明星| 瓮安县| 辽源市| 佛冈县| 海原县| 平罗县| 大兴区| 藁城市| 财经| 遵化市| 津市市| 绿春县| 夏河县| 礼泉县| 上栗县| 正阳县| 玉山县| 永康市| 伊宁市| 雷山县| 安阳市| 丁青县| 赣州市| 门头沟区| 上栗县| 郁南县| 交口县| 桃园市| 东明县| 贵南县| 吐鲁番市| 宜城市| 娱乐| 前郭尔| 镇宁| 佛教| 山阴县| 南召县| 九寨沟县| 始兴县| 定边县|