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

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

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

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

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

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

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

接口設(shè)計(jì):

//$ids 這十條數(shù)據(jù)的id集合,逗號隔開的字符串
//$oldIndex 原始位置,從0開始算
//$newIndex 要拖動(dòng)的位置
function dragSort($ids,$oldIndex,$newIndex)
{
  //保證查找出來的數(shù)據(jù)跟前臺(tái)提交的順序一致,這里要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'];
  }
  //記錄要拖動(dòng)的id
  $oldValue = $idArr[$oldIndex];
  //刪除這個(gè)要拖動(dòng)的id
  unset($idArr[$oldIndex]);
  //插入新的位置,并自動(dòng)移位
  array_splice($idArr, $newIndex, 0, $oldValue);
  //重新設(shè)置排序
  $set = [];
  for ($i = 0; $i < count($idArr); $i++) {
     $set[$i]['id']  = $idArr[$i];
     $set[$i]['sort'] = $sortArr[$i];
   }
  //保存到數(shù)據(jù)庫省略
}

總結(jié)

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

相關(guān)文章

最新評論

旺苍县| 喀喇沁旗| 舟曲县| 巩义市| 嘉峪关市| 长白| 朝阳县| 普陀区| 江都市| 临沧市| 开化县| 云霄县| 祁阳县| 吉木乃县| 十堰市| 华宁县| 富阳市| 台前县| 绵竹市| 蓬莱市| 花垣县| 油尖旺区| 南充市| 保德县| 会宁县| 乐山市| 台中县| 弋阳县| 云南省| 达拉特旗| 万全县| 新密市| 曲阳县| 连城县| 伊金霍洛旗| 邯郸市| 海晏县| 新泰市| 泰来县| 望都县| 昌宁县|