Bonjour,
J'ai un petit problème avec une fonction AJAX.
J'ai un formulaire avec plein de case à cocher (une sorte de liste) et je veux lancer un traitement à chaque case cochée. Le problème est que le traitement peut être très long si je lance tout d'un coup dans un script php (environ 1 seconde de traitement par case cochée * 1000 cases environ).
Donc, j'ai décidé de faire de l'ajax pour lancer 1000 fois un script.
Le problème c'est que ça marche très bien sur FF mais pas du tout sur IE6 (pb sur l'état d'avancement).
Voici en gros ma fonction
Mon gros problème, c'est qu'il lance bien tous les script mais qu'il n'attend pas les réponse et du coup, il ne fait rien du tout (sauf la première).
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 var xhr_object = null; if(window.XMLHttpRequest) // Firefox xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // Internet Explorer xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas cette fonctionnalité du site."); return; } for (var i=0;i<checkboxes.length;i++) { if(checkboxes[i].type == 'checkbox') { if (checkboxes[i].checked == true) { no_cache = Math.random(); //récupérer les valeurs var sendData = "idRub=" + checkboxes[i].value + "&idDest=" + idDest + "&idSource=" + idSource + "&nocache=" +no_cache; // défini plus haut dans le script / sans intérêt pour mon pb xhr_object.open('post', 'duplicate.php',true); xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) { if(xhr_object.responseText == 0) { iOk++; lblOk.innerHTML = iOk; } else { iErreur++; lblErreur.innerHTML = iErreur; } } } xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr_object.send(sendData); } } }
Pouvez-vous m'aider?
Je sais vraiment pas quoi faire là.
Merci d'avance
Partager