Utilisateur anonyme
-
18 juin 2010 à 10:00
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 2011
-
22 juin 2010 à 20:27
Bonjour,
Je cherche à créer des classes javascript avec deux constructeurs. L'un d'eux est un à partir objet documentElement (facile).
Pour l'autre constructeur, j'ai besoin de créer un objet xmlhttprequest qui va récupérer les informations sur le serveur et appelle le premier constructeur.
Un truc du genre :
function Country()
{
var ID;
var Name;
var Code;
this.LoadFromXML = function(XMLObject)
{
this.ID = (XMLObject.getElementsByTagName("ID_E_COUNTRY")[0].firstChild != null) ? XMLObject.getElementsByTagName("ID_E_COUNTRY")[0].firstChild.nodeValue : "";
this.Name = (XMLObject.getElementsByTagName("NAME")[0].firstChild != null) ? XMLObject.getElementsByTagName("NAME")[0].firstChild.nodeValue : "";
this.Code = (XMLObject.getElementsByTagName("CODE")[0].firstChild != null) ? XMLObject.getElementsByTagName("CODE")[0].firstChild.nodeValue : "";
}
this.LoadFromXHR = function(SessID, ID)
{
var xmlHttp = GetXmlHttpObject();
var URL = "PHP/CountryInfos.php?PHPSESSID=" + SessID;
var QUERY = "ID=" + ID;
var METHOD = "POST";
if (xmlHttp == null)
{
alert("Votre navigateur ne supporte pas les requêtes HTTP.");
return false;
}
xmlHttp.onreadystatechange = function()
{
if (xmlHttp.readyState 4 || xmlHttp.readyState "complete")
{
var XmlDoc = xmlHttp.responseXML.documentElement;
if(XmlDoc != null)
{
for (i = 0; i < XmlDoc.getElementsByTagName("COUNTRY").length; i++)
{
var Objet = XmlDoc.getElementsByTagName("COUNTRY")[i];
this.LoadFromXML(Objet);
}
}
}
}
xmlHttp.open(METHOD, URL, true);
if(METHOD == 'POST')
{
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
}
xmlHttp.send(QUERY);
return true;
}
}
Le problème vient du
this.LoadFromXML(Objet);
apparement, dans ce cas this désigne le xmlHttpRequest et non ma classe.