11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour, je coince depuis plusieurs jours sur un problème avec DOM et Firefox.
J'envoie, via AJAX, un formulaire à une page PHP. Cette page PHP me renvoie un XML, que je récupère via responseXML.

Voici le code XML généré par ma page php.

<?xml version="1.0" encoding="utf-8" ?>
<Root>
  <Status>Add</Status>
  <Id>15</Id>
</Root>


Je souhaite récupérer des données dans ce document XML.

function addCat(){
	var form = document.getElementsByTagName('form')[1];
	var resp = document.getElementById("admCatResp");
	var xhr= init();//crée un objet XMLHTTPRequest
	xhr.open("POST","server/admAddCat.php",true);
	if(checkForm(form)) {
		xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		xhr.send(getFormData(form));
		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4) {
				alert(xhr.responseXML.getElementsByTagName("Status")[0].text);
if (xhr.responseXML.getElementsByTagName("Status")[0].text == "Add"){
					var id = xhr.responseXML.getElementsByTagName('Id')[0].text;
					var name = xhr.responseXML.getElementByTagName('Name')[0].text;
					new_element = new Option(name,id);
					form.cbIdCat.options[form.cbIdCat.length] = new_element;
					resp.innerHTML = "Cat&eacute;gorie n° "+xhr.responseXML.getElementsByTagName('Id')[0].text+" ajout&eacute;e";
				}
				else if (xhr.responseXML.getElementsByTagName("Status")[0].text == "Update")
					resp.innerHTML = "Cat&eacute;gorie n°"+xhr.responseXML.getElementsByTagName('Id')[0].text+" modifi&eacute;e";
			}
			else resp.innerHTML= treatmentError;
			form.reset();
		}
	}
	else resp.innerHTML = errorMsg;
}

Sous IE, j'ai un message d'alerte qui contient "Add", ce qui est correct.
Malheureusement, avec le même code sous Firefox, le message d'alerte contient "undefined" au lieu de Add.

Pouvez-vous me dire pourquoi, ainsi que la manière de corriger cette erreur ?

Merci d'avance,
Big