Bonjour
Je vais un peu expliquer le contenu de cette partie mon projet pour commencer.
En gros, il s'agit d'ensemble de scripts PHP, avec tout pleins de fonctions PHP et quelques fonctions Javascript.
Parmi les fonctions PHP, celle qui gère le multipage de tableau. Elle fonctionne bien en temps normal, les checkbox de chaque ligne sélectionnée d'un tableau étant sauvegardées en revenant sur la page en question. Tout ceci passant en utilisant un submit du formulaire en question.
Là où ça se complique, c'est lorsque j'utilise un objet DataGrid de la librairie Dojo pour formater le tableau (entre autre). J'ai réussi à pouvoir récupérer les données sélectionnées via une fonction qui crée une "checkbox invisible" pour chaque élément sélectionné.
Bref, ce n'est toujours pas le soucis à mon avis.
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 function selectInForm(myForm) { var items = grid0.selection.getSelected(); if(items.length) { dojo.forEach(items, function(selectedItem) { if(selectedItem !== null) { var docSel = document.createElement('INPUT'); docSel.setAttribute('type', 'hidden'); docSel.name = 'selItem[]'; docSel.value = grid0.store.getValues(selectedItem, \"DOC_ID\"); docSel.setAttribute('checked', true); myForm.appendChild(docSel); } }); } }
Pour appeler cette fonction, j'utilise une de mes fonctions "génériques" :
Ce qui donne en gros dans mon cas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 function addEvent (obj, evName, fct) { if (obj.attachEvent) obj.attachEvent("on" + evName, fct); else obj.addEventListener(evName, fct, false); }
Comme ça ne fonctionnait pas (ça ne rentre même pas dans la fonction), j'ai testé en changeant le addEvent submit par le "click". Ca fonctionne bien, mais évidemment je ne peux pas utiliser cette solution puisqu'inconvenable à la situation : création de checkbox même quand on désélectionnait les lignes, ce qui est logique puisque l'événement était déclenché à chaque clic sur le tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 addEvent(window, 'load', function () { addEvent(formulaire, 'submit', selectInForm); });
Même en testant :
ça n'est pas pris en compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part addEvent(formulaire, 'submit', function(){ alert('ok'); });
Là je me prends un peu trop la tête dessus, les recherches n'emmènent rien, les collègues n'aident pas pour se concentrer correctement sur ça, bref... le caca![]()
C'est donc pour ça que je viens appeler au secours chez mes amis DVP
Merci d'avance !
Partager