Bonjour à tous,
Je galère sur un problème de Drag and Drop avec les Sortable avec la librairie Scriptaculous.
J'ai découvert des choses intéressantes. Notamment que sur l'évènement onUpdate (resp onChange), on peut connaitre l'id du conteneur source (resp l'id de l'item qu'on est en train de dropper.
***********************************
ex1 :
************************************
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ... onUpdate: SortableLists.updated, ... var SortableLists = { ... updated: function (list) { alert(list.id); //affiche l'id de la liste d'ou vient l'item droppé } ... }
ex2 :
Mais ça l'affiche un nombre impressionnant de fois. Normal puisque l'évènement onChange intervient à chaque fois qu'il y a modification dans l'ordre d'une liste, c'est à dire énornément de fois lorsqu'on bouge d'une liste de 12 élément à une autre de 20éléments..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 var SortableLists = { ... onChange : SortableLists.test, ... test: function (element) { alert(element.id); //affiche l'id de l'item droppé ... }
************************************
Je vous explique rapidement ce que je dois faire:
1) Je peux bouger un élément "li" ou "ul" d'une liste à une autre.
2) Quand je drag&drop un élemen ("li" ou "ul"), je dois enregistrer plusieurs informations (comme l'id de l'élément droppé, l'id du conteneur source, l'id du conteneur destination)(en les insérant dans un array par exemple) et ensuite, je dois toujours conserver l'élément droppé dans le conteneur source (la liste "ul" de départ donc) mais avec une couleur de fond différente, ce qui montrera que l'élément a bien été bougé qqpart. Cela implique donc bien que je sache d'une manière ou d'une autre l'id de l'élément que je bouge car j'en ai besoin à plusieurs reprises.
3) Enfin, quand l'utilisateur clique sur un bouton submit, je dois appeler plusieurs actions struts corresponsdant à toutes les entrées que j'aurai dans mon array. C'est à dire qu'à chaque fois que l'utilisateur bougera un élément qqpart, il y a une opération sur des tables à effectuer derrière, donc c'est de cette manière que j'ai choisi de traduire les opérations à effectuer en base : en stockant les informations dans un array que je devrai parser à la fin.
Ca parait peutetre méchant comme ça mais ça l'est pas.
J'arrive à insérer une ligne dans un array sur l'évènement onUpdate mais par contre, j'arrive pas à mettre dans cette ligne les informations qui m'intéressent, à savoir les id que je vous ai cités plus haut.
Quelqu'un peut me filer un coup de main?![]()
Partager