jQuery Sortable - enregistrer la commande lorsque le nouvel élément traîné dans la liste
J'ai deux listes triables qui détiennent des bons de travail. La deuxième liste est une Route
alors que le premier est juste une liste de tous les ordres de travail qui n'ont pas été ajoutés à la Route
liste. L'idée est que l'utilisateur fait glisser les ordres de travail dans le Route
dans un ordre spécifique, en réarrangeant les ordres de travail pour créer un itinéraire que l'employé va suivre.
Mon problème est la gestion de la position des nouveaux bons de travail glissé sur l' Route
liste. Est-il un moyen facile de traiter avec la mise à jour de la position de tous les éléments de la liste (sur la base de données côté des choses via des appels ajax) lorsque de nouveaux éléments sont ajoutés?
Un peu plus d'infos pour plus de clarté...
Lorsque le Route
liste est vide (aucun des ordres de travail, a ajouté encore) c'est simple - utilisateur fait glisser nouvel ordre de travail sur la liste est vide, l'appel ajax fait pour sauver les détails (sur le sous-jacent d'enregistrements sur le serveur de l' Route
objet et le Route Item
venez d'ajouter.
Lorsque l'utilisateur fait glisser le deuxième ordre de travail dans le Route
liste que je veux déterminer si le nouvel ordre de travail deviendra le premier dans la liste, ou la deuxième, puis la mise à jour de toutes les informations (côté serveur) pour tous les éléments dans la liste. Les choses deviennent vraiment compliqué quand je veux ajouter un nouveau travail pour une Route
qui a déjà 30 ordres de travail.
Est-il un moyen simple de faire cela ou est-ce juste une question de codage une quantité décente de jQuery et backend fonctions pour gérer cela? J'ai été à la chasse sur le net pour les solutions, mais ne peut pas trouver quelque chose de tout que de définitif.
OriginalL'auteur Garfonzo | 2013-01-26
Vous devez vous connecter pour publier un commentaire.
Assez bien oui, mais si vous savez déjà comment gérer les appels Ajax pour sortables puis le mélange de deux listes n'est pas un problème. Je suis en utilisant une version modifiée de la codification sur cette page. Et je suis en utilisant le
recevoir
événement & lastop
événement de montrer comment vous pouvez crochet simple fonction dans la base triable de codage:Alors, quand un élément est triée et le tri s'arrête, un "Arrêtez!" boîte d'alerte s'affiche. Et lorsqu'un nouvel article est mis dans une liste à partir d'un autre un '!' boîte d'alerte s'affiche en plus de l'arrêt. Vous pourriez être en mesure d'utiliser seulement la
stop
événement pour déclencher un appel Ajax, mais lereceive
même peut-être utile de faire autre chose si un nouvel élément est ajouté à une liste.Receive
événement pour gérer de nouveaux articles insérés, mais je vais regarder dans leStop
événement.Heureux de vous avoir aidé! Eh bien, voici la façon dont je regarde codage des choses comme ça: je crois véritablement que quelques "off-the-shelf' il existe des solutions pour les tâches de la croix programmation les disciplines de ce genre. Et quand ils le font, ils ne semblent jamais être un bon ajustement. Alors quand j'ai programme pour un client ou une date limite, je pense aussi à propos de la réutilisation des codes pour d'autres projets ou générique comment je peux faire le code tout de même d'atteindre un client objectif. Bonne chance!
OriginalL'auteur JakeGould
Vous pouvez l'enregistrer afin de chaque colonne, chaque fois qu'il ya une mise à jour à l'aide d'un appel ajax.
Travail JSFiddle Exemple
L'explication ci-dessous:
Pour que cela fonctionne, vous devez avoir à donner à chacun de trier les éléments capables d'un id unique. Par exemple:
Ensuite, vous pouvez capturer l'id de chaque sortable li et retour de courrier que dans une requête ajax.
Vous pouvez ensuite faire le processus de sauvegarde de la commande sur la page que vous êtes en fait la demande.
OriginalL'auteur Jason Small