Bonjour à tous,
J'ai développé une interface qui est composé d'un tableau dans lequel un utilisateur peut cocher ou décocher (par des checkbox) des lignes. Lors de l'évènement onClick sur une checkbox un script javascript est appelé :
Ce script me permet de mettre à jour une base de données. Ce script fonctionne sous firefox et IE. Le problème vient après.
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 function updateMask(obj, profile, object_id, object_type) { // we get the value of "checked" attribut of input var state = obj.checked; var old_state = 't'; if(state) { old_state = 'f'; } //alert("state = " + state + " et old_state = " + old_state); if(XHR && XHR.readyState != 0) { XHR.abort(); delete XHR; } XHR = getXMLHTTP(); if(!XHR) { return false; } document.getElementById("waiting").className = "enable"; url = "?action=ajax_submit_control&profile=" + profile + "&object_id=" + object_id + "&object_type=" + object_type + "&checkstate=" + old_state + ieTrick(); XHR.open("GET", url, true); XHR.onreadystatechange = function() { if(XHR.readyState == 4) { if(state) obj.setAttribute("checked", false); else obj.setAttribute("checked", true); document.getElementById("waiting").className = "disable"; } } XHR.send(null); return; }
Comme je peux avoir plus de 1000 lignes dans le tableau, j'ai écrit une autre fonction javascript qui permet, lorsqu'on clique sur le lien "select all" de sélectionner toutes les cases non cochées et de les ajouter à la base de données (en appelant le script précédent).
Et Là j'ai un problème, ca marche sous firefox mais pas sous IE (version 6).
Merci pour votre aide.
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 function selectAllByProfile(obj, profile, object_type) { result = confirm("Do you really want to select all items ?"); if(result) { id_list = document.getElementsByName("id[]"); checkbox_list = document.getElementsByName(profile + "[]"); for(i=0; i<checkbox_list.length; i++) { if(! checkbox_list.item(i).checked) { checkbox_list.item(i).setAttribute("checked", true); object_id = id_list.item(i).value; updateMask(checkbox_list.item(i), profile, object_id, object_type); } } return true; } return false; }
Partager