[AJAX] responseXML ou loadXML?
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:
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:
<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:
1 2
| <?xml version="1.0" encoding="ISO-8859-1" ?>
<taux>0,9</taux> |
La fonction est appelée dans un select :
Code:
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! :)