Bonjour tous le monde.
J'ai des listes liées sur mon site qui fonctionnent très bien avec firefox (je remercie rawsrc au passage car il m'a bien aidé) mais qui ne fonctionnent pas du tout sur IE.
Le problème classique j'ai beau chercher sur les forums mais je ne vois rien d'anormale dans la création de mon objet XMLHttpRequest
Si quelqu'un peux m'aider à trouver une solution ce serai sympas de sa part.
Voici mon code js
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
 
<script type="application/javascript">
function getXMLHttpRequest() {
	var xhr = null;
 
	if (window.XMLHttpRequest || window.ActiveXObject) {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		} else {
			xhr = new XMLHttpRequest(); 
		}
	} else {
		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
		return null;
	}
 
	return xhr;
}
function refreshMarques() {
                   var listTypes = document.getElementById('types');
                   var idType = listTypes.options[listTypes.selectedIndex].value;
				   var xhr   = getXMLHttpRequest();
                   if (idType != '') {
                      callAndRefresh('marques', '<?php echo ROOTPATH; ?>/insert/refreshMarques.php', 'type='+idType);
                   }
                }
				function refreshGammes() {
					var listMarques = document.getElementById('marques');
				   	var idMarque = listMarques.options[listMarques.selectedIndex].value;
				   	var listTypes = document.getElementById('types');
				  	var idType = listTypes.options[listTypes.selectedIndex].value;
				   	if ((idMarque != '') && (idType != '')) {
					  callAndRefresh('gammes', '<?php echo ROOTPATH; ?>/insert/refreshGammes.php', 'marque='+idMarque+'&type='+idType);
				   }
				}
				function refreshImprimantes() {
					var listGammes = document.getElementById('gammes');
                   	var idGamme = listGammes.options[listGammes.selectedIndex].value;
				   	var listMarques = document.getElementById('marques');
				   	var idMarque = listMarques.options[listMarques.selectedIndex].value;
				   	var listTypes = document.getElementById('types');
				  	var idType = listTypes.options[listTypes.selectedIndex].value;
                   if ((idGamme != '') && (idMarque != '') && (idType != '')) {
                      callAndRefresh('imprimantes', '<?php echo ROOTPATH; ?>/insert/refreshImprimantes.php', 'gamme='+idGamme+'&marque='+idMarque+'&type='+idType);
                   }
                }
 
                function callAndRefresh(id, url, params) {
                   var xhr = getXMLHttpRequest();
                   xhr.onreadystatechange = function(){
                      // si on a tout reçu et que le serveur est ok
                      if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
                      {
					  	document.getElementById("loader").style.display = "none";
                         // On se sert de innerHTML pour rajouter les options a la liste des "selections"
                         document.getElementById(id).innerHTML = xhr.responseText;
                     } else if (xhr.readyState < 4) {
							document.getElementById("loader").style.display = "inline";
						}
                   }
                   // on defini la methode (post) + le fichier de traitement + asynchrone (true)
                   xhr.open("POST", url , true);
                   xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                   // on poste les parametres a transmettre au fichier qui fera le traitement
                   xhr.send(params);
                } 
                 </script>
Merci d'avance.