ホームページ >バックエンド開発 >PHPチュートリアル >PHPインターフェースはドラッグアンドドロップソート機能を実装します

PHPインターフェースはドラッグアンドドロップソート機能を実装します

不言
不言オリジナル
2018-04-23 15:00:182092ブラウズ

この記事では主に PHP インターフェースのドラッグ アンド ドロップ ソート機能を紹介します。これを必要とする友人に共有します。バックエンド インターフェイスでよく使用される、ドラッグ アンド ドロップの並べ替え機能を実装した php インターフェイスを紹介します。興味のある方はぜひご覧ください。ドロップソートは非常に一般的な機能ですが、バックエンドインターフェイスをどのように扱うか?しかし、それは複雑な問題です


最高の効率を達成するにはどうすればよいですか?

まずシナリオを分析します。 10 個のデータがあるページの場合、いわゆるドラッグはこれら 10 個のデータの間を行ったり来たりすることですが、ドラッグするたびに、たとえば最後の項目を前にドラッグすると、次のデータが影響を受けます。 9 個のアイテムが自動的に後ろに移動します。また、その逆も同様です。まあ~~~まず、並べ替え番号が 10 個あると想像してください。それぞれの椅子がそこに固定されており、そこに座っている人が移動します。他のページのデータに影響を与えることはなく、各自が自分のテーブルと椅子の番号を変更するので、どのくらい追加すれば順位が何位になるかを考える必要もありません。

インターフェースデザイン:


//$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][&#39;id&#39;]  = $idArr[$i];
     $set[$i][&#39;sort&#39;] = $sortArr[$i];
   }
  //保存到数据库省略
}

関連推奨事項:


phpインターフェースプログラミングの詳細な説明


以上がPHPインターフェースはドラッグアンドドロップソート機能を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。