php介面實作拖曳排序功能實例

不言
發布: 2023-03-25 09:48:01
原創
1799 人瀏覽過

這篇文章主要介紹了關於php介面實作拖曳排序功能實例,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

我們如何學習列表拖曳排序功能,但是後端介面如何處理卻是一個令人糾結的問題,如何實現才能達到效率最高呢

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

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

介面設計

//$ids 这十条数据的id集合,逗号隔开的字符串//$oldIndex 原始位置,从0开始算//$newIndex 要拖动的位置function dragSort($ids,$oldIndex,$newIndex){    //保证查找出来的数据跟前台提交的顺序一致,这里要order by field
    //id 主键 sort 排序值
    $sql =  "select id,sort from 表名字 where id in ($ids) order by field(id, " . $ids . ") ";
    $list =  "这里省略,就是去数据库找嘛";    //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];
     }    //保存到数据库省略}
登入後複製

相關推薦: 
微信公用帳號開發模式PHP介面實作

以上是php介面實作拖曳排序功能實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板