這次給大家帶來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中文網其它相關文章!
推薦閱讀:
php7操作MongoDB增刪改查步驟詳解
PHP操作Redis步驟詳解