Bonjour à tous,

J'espère être sur le bon forum, vous me direz. J'ai un Jquery qui me construit un bloc de deux combos. A gauche ma base me donne les valeurs d'une table (id et nom), à droite une combo vide.

Au milieu des boutons pour envoyer de g à dr et vice versa les "options du select" de l'une vers l'autre.

J'ai trois autres blocs dans ma page construits de la même manière.

Tout va bien, les options vont et viennent. Au final, une fois que les quatre listes d'options sont créées à droite, je voudrais avoir quatre array lstBox_a à lstBox_d, avec, pour chacune la liste des id et noms résidents (ma fonction ne me poste qu'un seul élément, même si j'en sélectionne plusieurs et ne provenant que d'un des quatre blocs :-( ).

Si ma fonction clone les options du select d'un côté et de l'autre comment intégrer, parallèlement, la construction ou la réduction des array ?

Voici mon jquery, trouvé sur le net et modifié pour différencier les quatre blocs (+i...) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
(function () {
 
 
                        jQuery("td.btn").each( function(i,el) {
 
                            $('#btnRight'+i*2).click(function (e) {
                                var selectedOpts = $('#lstBox'+i*2+' option:selected');
                                if (selectedOpts.length == 0) {
                                    alert("aucune option sélectionnée.");
                                    e.preventDefault();
                                }
                                $('#lstBox'+(i*2+1)).append($(selectedOpts).clone());
                                $(selectedOpts).remove();
                                e.preventDefault();
                            });
 
                            $('#btnAllRight'+i*2).click(function (e) {
                                var selectedOpts = $('#lstBox'+i*2+' option');
                                if (selectedOpts.length == 0) {
                                    alert("aucune option sélectionnée.");
                                    e.preventDefault();
                                }
                                $('#lstBox'+(i*2+1)).append($(selectedOpts).clone());
                                $(selectedOpts).remove();
                                e.preventDefault();
                            });
 
                            $('#btnLeft'+i*2).click(function (e) {
                                var selectedOpts = $('#lstBox'+(i*2+1)+' option:selected');
                                if (selectedOpts.length == 0) {
                                    alert("aucune option sélectionnée.");
                                    e.preventDefault();
                                }
                                $('#lstBox'+i*2).append($(selectedOpts).clone());
                                $(selectedOpts).remove();
                                e.preventDefault();
                            });
 
                            $('#btnAllLeft'+i*2).click(function (e) {
                                var selectedOpts = $('#lstBox'+(i*2+1)+' option');
                                if (selectedOpts.length == 0) {
                                    alert("aucune option sélectionnée.");
                                    e.preventDefault();
                                }
                                $('#lstBox'+i*2).append($(selectedOpts).clone());
                                $(selectedOpts).remove();
                                e.preventDefault();
                            });
 
                        });
Pourriez-vous m'aider ? Merci d'avance et bonne soirée à tous...