gestion position dans liste

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : gestion position dans liste

par Patriboom » 20 déc. 2007, 07:30

Tu peux aussi faire une vérification en javascript avant soumission du formulaire. Si deux items on le même indice, on demande à l'opérateur de corriger.

par Ryle » 19 déc. 2007, 12:17

La solution simple : tu traites pas :) S'il donne le même "poids" à deux articles, tu les affiches au même rang, éventuellement sous-trié par ordre alphabétique.

La solution intermédiaire : avant de faire ton update, tu vérifies que la position demandée est disponible, sinon tu renvois vers le formulaire avec un message d'erreur.

La solution complexe : tester avec ajax si la place est disponible et informer l'utilisateur dans le cas contraire

La solution transparente : mettre à jour tous les champs concernés lorsqu'un ordre est modifié. A partir de l'ordre précédent et en fonction du nouveau, tu fais un update sur ta table pour ajouter +1 ou -1 aux valeurs comprises entre les deux pour faire de la place pour insérer la nouvelle :)

gestion position dans liste

par Invité » 19 déc. 2007, 11:56

Bonjour à tous,

J'ai créé un petit script qui affiche une liste d'items stockés dans une table mysql.
Pour chaque item, il y a un champ de texte qui permet de changer l'ordre de l'item dans la liste.

Exemple:
quand je liste mes items, l'item 10 s'affiche avec un input text contenant le chiffre 10 (ordre de l'item 10).
Si je veux que l'item 10 passe à la position 20, je change 10 en 20 dans le champ de texte et je sauve.
=> La liste se réaffiche avec l'item 10 en position 20 grace a une requete qui update quand la liste est sauvée.

Jusque là, pas de pb. Mon souci, c'est si l'utilisateur se trompe et saisit par exemple 2 fois le même ordre dans 2 inputs de la liste:
Par exemple, si l'utilisateur met à la fois la position 20 pour l'item 10, et la position 20 pour l'item 11
comment devrais-je traiter l'opération?

Je recherche plus des pistes de raisonnement que du code.
Merci pour vos réponses.