Bonjour,

J'ai un problème avec une fonction ajax. Elle doit afficher une valeur dans un <input type="text"> obtenue par une page asp qui renvoie une réponse formatée avec des balises xml.
En simplifiant un peu, j'ai:

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
<script type="text/javascript">
 
function remplir_taux(id) {
    var id,xmlhttp,xmlDoc;
 
    if (id == "") {
        return;
    }
 
    // Création d'un objet XMLHttpRequest :
    if (window.XMLHttpRequest){ // code pour IE7+, Firefox, Chrome, Opera, Safari :
        xmlhttp=new XMLHttpRequest();
    }
    else{   // code pour IE6, IE5 :
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
 
    // Fonction à executer quand la réponse du serveur est prête :
    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            xmlDoc=xmlhttp.responseXML;
            document.getElementById("taux").value=xmlDoc.getElementsByTagName("taux")[0].childNodes[0].nodeValue;
        }
    }
 
    // Envoie la requête au serveur :
    xmlhttp.open("GET", "recuperertaux.asp?id=" + id, true);
    xmlhttp.send();
}
 
</script>
L'élément avec id="taux" est un <input type="text">:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<input type="text" name="taux" id="taux" value="" />
et la page recuperertaux.asp?id=20 (par exemple) peut rendre (entre autres, mais je laisse une seule balise pour simplifier):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
  <?xml version="1.0" encoding="ISO-8859-1" ?> 
  <taux>0,9</taux>
La fonction est appelée dans un select :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<select name="id_idcc" id="cc" onchange="remplir_taux(this.value)">
<option value=""></option>
...
</select>
Je me demande si le problème est dans le responseXML (ligne 21) parce que l'erreur semble être juste après (quand on essaie de récupérer la valeur et l'affecter à la value de l'input).

Merci infiniment de votre temps!