Bonjour à tous,

J'ai développé une petite application où j'ai utilisé de l'ajax.

La fonction ajax que j'utilise permet de mettre à jour une combobox lors de la sélection d'une valeur dans une autre combobox. Cette fonction récupère dans un premier temps la valeur de la première combobox, vide la seconde puis lance un scrip php afin de reremplir la seconde combobox.

J'avais développé cette fonction qui fonctionnait trés bien sous firefox. La personne pour laquelle j'ai développé l'application utilise IE. D'aprés ce que je vois lorsque je regarde le code source de la page ma combobox n'est pas vidée.

Voici le code de ma fonction :

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
function actualiserCombo(valueID)
{
   // On vide la combo 2
   document.getElementById('combo_fournisseur').innerHTML=null;
   //Je pense que c'est ici que la combo n'est pas vidée
   // On lance la requete ajax
   var xhr = getXhr();
   xhr.onreadystatechange = function(){
      if(xhr.readyState == 4 && xhr.status == 200){
         optionsselect = xhr.responseText;
         // On se sert de innerHTML pour rajouter les options a la liste
         document.getElementById('combo_fournisseur').innerHTML = optionsselect;
      }
    }
    // Ici on va voir comment faire du post
    xhr.open("POST","Code/Php/Maj_Combo_Fournisseur.php?vue=ajax",true);
    // ne pas oublier ça pour le post
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    // ne pas oublier de poster les arguments
    // ici, on regarde ce qui est séléctionné dans la combo1
    maCombo = document.getElementById('combo_facturation');
    idvalue = maCombo.options[maCombo.selectedIndex].value;
    // On envois la requete
    xhr.send("idvalue="+idvalue);
}
// Ici cf doc AJAX
function getXhr(){
    var xhr = null; 
    if(window.XMLHttpRequest) 
        xhr = new XMLHttpRequest(); 
    else if(window.ActiveXObject){ 
        try {
            xhr = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    else { 
        alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
        xhr = false; 
    } 
    return xhr;
}
Je ne vois pas du tout d'où cela peut venir


Si vous auriez une petite idée.

MErci d'avance pour vos réponses