這次帶給大家php介面實作拖曳排序步驟詳解,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中文網其他相關文章!