Maison  >  Article  >  développement back-end  >  L'interface PHP implémente la fonction de tri par glisser-déposer

L'interface PHP implémente la fonction de tri par glisser-déposer

不言
不言original
2018-04-23 15:00:182056parcourir

Cet article présente principalement la fonction de tri par glisser-déposer de l'interface PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Glisser-liste. Le tri par glisser-déposer est une méthode très courante. La fonction est souvent utilisée dans le traitement de l'interface back-end. Aujourd'hui, l'éditeur vous propose une interface php pour implémenter la fonction de tri par glisser-déposer. Les amis intéressés devraient y jeter un œil

Le tri de liste par glisser-déposer est une fonction très courante, mais comment gérer l'interface back-end est un problème complexe


Comment atteindre l'objectif la plus grande efficacité ?

Analysons d'abord un scénario. Supposons qu'il y ait une page avec dix éléments de données. Ce qu'on appelle le glisser signifie faire glisser les dix éléments de données d'avant en arrière, mais chacun. le glisser affectera d'autres données. Par exemple, faire glisser le dernier morceau vers l'avant, puis les neuf barres suivantes reculeront automatiquement, et vice versa, euh~~~

Imaginez d'abord que le numéro de tri est fixe, tout comme il y a dix chaises, et chaque chaise est fixée là et déplacée. Celles du haut sont les personnes du dessus, donc cela n'affectera pas les données sur les autres pages, et tout le monde change les numéros de table et de chaise des autres personnes avant, vous n'avez donc pas à penser à ce que vous devez ajouter au classement.

Conception de l'interface :



//$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];
   }
  //保存到数据库省略
}
Recommandations associées :

Explication détaillée de la programmation de l'interface php


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn