par
Aureusms » 06 oct. 2010, 22:46
Voici mes code côté JS :
L'obet XMLHTTP REQUEST :
Code : Tout sélectionner
var xmlHttp = createXmlHttpRequestObject ();
function createXmlHttpRequestObject ()
{
var xmlHttp;
try
{
xmlHttp = new XMLHttpRequest ();
}
catch(e)
{
//pour IE 6 et plus ancien
var XmlHttpVersions = new array ("MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP");
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
{
try
{
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch(e) {}
}
}
if (!xmlHttp)
alert ("Erreur dans la création de l'objet XMLHttpRequest");
else
return xmlHttp;
}
Les fonctions de retour (onready state change et ....)
Code : Tout sélectionner
var objetXHR = new Object();
function objectTextResponse ()
{
if (objetXHR)
{
try
{
if (objetXHR["lienGet"] && objetXHR["lienGet"].length != 0)
objetXHR["XMLHttpRequest"].open("GET", "index.php"+objetXHR["lienGet"], true);
if (objetXHR["lienPost"] && objetXHR["lienPost"].length != 0)
objetXHR["XMLHttpRequest"].open("POST", "index.php"+objetXHR["lienPost"], true);
if (objetXHR["lienPost"] && objetXHR["lienGet"] && objetXHR["lienGet"].length == 0 && objetXHR["lienPost"].length == 0)
return false;
if (objetXHR["lienPost"] && objetXHR["lienGet"] && objetXHR["lienGet"].length != 0 && objetXHR["lienPost"].length != 0)
return false;
if (getObj("ajax_loader"))
{
montreFenetre ("ajax_loader");
}
objetXHR["XMLHttpRequest"].onreadystatechange =
function ()
{
if (objetXHR["XMLHttpRequest"].readyState == 4)
{
if (objetXHR["XMLHttpRequest"].status == 200)
{
try
{
var textResponse = objetXHR["XMLHttpRequest"].responseText;
if (objetXHR["simuleXML"] == true)
{
if (textResponse)
{
var idAModifier = simule_xml (objetXHR["simlueXmlTableauDonnee"][0],textResponse);
idAModifier = idAModifier[1];
var valueAModifier = simule_xml (objetXHR["simlueXmlTableauDonnee"][1],textResponse);
valueAModifier = valueAModifier[1];
if (getObj(idAModifier))
{
getObj(idAModifier).innerHTML = valueAModifier;
}
if (getObj ("ajax_loader"))
cacheFenetre ("ajax_loader");
if (getObj(objetXHR["nomFenetreEnfant"]) && objetXHR["nomFenetreEnfant"] != false)
cacheFenetre(objetXHR["nomFenetreEnfant"]);
}
}
else
{
if (objetXHR["nomFenetreEnfant"] != false)
creeFenetreSimple (textResponse,objetXHR["nomFenetreEnfant"],objetXHR["nomFenetreParent"],objetXHR["positionXEnfant"],objetXHR["positionYEnfant"]);
if (getObj ("ajax_loader"))
cacheFenetre ("ajax_loader");
if (objetXHR["nomFenetreEnfant"] != false && getObj(objetXHR["nomFenetreEnfant"]))
{
if (getObj(objetXHR["nomFenetreEnfant"]).style.visibility == "hidden")
objetVisible (objetXHR["nomFenetreEnfant"]);
if (getObj(objetXHR["nomFenetreEnfant"]).style.display == "none")
montreFenetre(objetXHR["nomFenetreEnfant"]);
}
}
}
catch(e)
{
alert ("Erreur lors de la lecture de la réponse : " + e.toString());
}
}
else
{
alert ("Il y a un problème de réception des données:\n" + objetXHR["XMLHttpRequest"].statusText);
}
}
}
if (objetXHR["lienPost"] && objetXHR["lienPost"].length != 0)
objetXHR["XMLHttpRequest"].setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
if (objetXHR["lienPost"] && objetXHR["lienPost"].length != 0)
objetXHR["XMLHttpRequest"].send(objetXHR["dataPost"]);
else
objetXHR["XMLHttpRequest"].send(null);
}
catch(e)
{
alert ("Impossible de se connecter au serveur : \n"+e.toString());
}
}
}
une fonction au hazard :
Code : Tout sélectionner
function afficheArticle(idArticle)
{
if (!idArticle)
{
alert ("Erreur_aucune_selection");
return false;
}
positionTopSouris = ord;
if (objetXHR["XMLHttpRequest"])
objetXHR["XMLHttpRequest"].abort();
objetXHR["XMLHttpRequest"] = createXmlHttpRequestObject ();
objetXHR["lienGet"] = "?affiche=affiche_article&id_article="+idArticle+"&article_action="+articleAction+"&langue_article="+articleLangue;
objetXHR["lienPost"] = "";
objetXHR["dataPost"] = "";
objetXHR["nomFenetreParent"] = "commun_boite";
objetXHR["nomFenetreEnfant"] = "boiteAfficheArticle";
objetXHR["positionXEnfant"] = 120;
objetXHR["positionYEnfant"] = ord-400;
objetXHR["simuleXML"] = faux;
objetXHR["simlueXmlTableauDonnee"] = new Array ();
objectTextResponse();
}
Ce sont mes premiers pas en JS, soyez indulgent...
Je n'ai pas mis certiane fonction comme montreFenetre et cacheFentre car je pense qu'elles n'apporterons pas grand chose : elles servent à interagir avec les CSS.
Voici mes code côté JS :
L'obet XMLHTTP REQUEST :
[code]var xmlHttp = createXmlHttpRequestObject ();
function createXmlHttpRequestObject ()
{
var xmlHttp;
try
{
xmlHttp = new XMLHttpRequest ();
}
catch(e)
{
//pour IE 6 et plus ancien
var XmlHttpVersions = new array ("MSXML2.XMLHTTP.6.0",
"MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP");
for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
{
try
{
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch(e) {}
}
}
if (!xmlHttp)
alert ("Erreur dans la création de l'objet XMLHttpRequest");
else
return xmlHttp;
}[/code]
Les fonctions de retour (onready state change et ....)
[code]var objetXHR = new Object();
function objectTextResponse ()
{
if (objetXHR)
{
try
{
if (objetXHR["lienGet"] && objetXHR["lienGet"].length != 0)
objetXHR["XMLHttpRequest"].open("GET", "index.php"+objetXHR["lienGet"], true);
if (objetXHR["lienPost"] && objetXHR["lienPost"].length != 0)
objetXHR["XMLHttpRequest"].open("POST", "index.php"+objetXHR["lienPost"], true);
if (objetXHR["lienPost"] && objetXHR["lienGet"] && objetXHR["lienGet"].length == 0 && objetXHR["lienPost"].length == 0)
return false;
if (objetXHR["lienPost"] && objetXHR["lienGet"] && objetXHR["lienGet"].length != 0 && objetXHR["lienPost"].length != 0)
return false;
if (getObj("ajax_loader"))
{
montreFenetre ("ajax_loader");
}
objetXHR["XMLHttpRequest"].onreadystatechange =
function ()
{
if (objetXHR["XMLHttpRequest"].readyState == 4)
{
if (objetXHR["XMLHttpRequest"].status == 200)
{
try
{
var textResponse = objetXHR["XMLHttpRequest"].responseText;
if (objetXHR["simuleXML"] == true)
{
if (textResponse)
{
var idAModifier = simule_xml (objetXHR["simlueXmlTableauDonnee"][0],textResponse);
idAModifier = idAModifier[1];
var valueAModifier = simule_xml (objetXHR["simlueXmlTableauDonnee"][1],textResponse);
valueAModifier = valueAModifier[1];
if (getObj(idAModifier))
{
getObj(idAModifier).innerHTML = valueAModifier;
}
if (getObj ("ajax_loader"))
cacheFenetre ("ajax_loader");
if (getObj(objetXHR["nomFenetreEnfant"]) && objetXHR["nomFenetreEnfant"] != false)
cacheFenetre(objetXHR["nomFenetreEnfant"]);
}
}
else
{
if (objetXHR["nomFenetreEnfant"] != false)
creeFenetreSimple (textResponse,objetXHR["nomFenetreEnfant"],objetXHR["nomFenetreParent"],objetXHR["positionXEnfant"],objetXHR["positionYEnfant"]);
if (getObj ("ajax_loader"))
cacheFenetre ("ajax_loader");
if (objetXHR["nomFenetreEnfant"] != false && getObj(objetXHR["nomFenetreEnfant"]))
{
if (getObj(objetXHR["nomFenetreEnfant"]).style.visibility == "hidden")
objetVisible (objetXHR["nomFenetreEnfant"]);
if (getObj(objetXHR["nomFenetreEnfant"]).style.display == "none")
montreFenetre(objetXHR["nomFenetreEnfant"]);
}
}
}
catch(e)
{
alert ("Erreur lors de la lecture de la réponse : " + e.toString());
}
}
else
{
alert ("Il y a un problème de réception des données:\n" + objetXHR["XMLHttpRequest"].statusText);
}
}
}
if (objetXHR["lienPost"] && objetXHR["lienPost"].length != 0)
objetXHR["XMLHttpRequest"].setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
if (objetXHR["lienPost"] && objetXHR["lienPost"].length != 0)
objetXHR["XMLHttpRequest"].send(objetXHR["dataPost"]);
else
objetXHR["XMLHttpRequest"].send(null);
}
catch(e)
{
alert ("Impossible de se connecter au serveur : \n"+e.toString());
}
}
}[/code]
une fonction au hazard :
[code]function afficheArticle(idArticle)
{
if (!idArticle)
{
alert ("Erreur_aucune_selection");
return false;
}
positionTopSouris = ord;
if (objetXHR["XMLHttpRequest"])
objetXHR["XMLHttpRequest"].abort();
objetXHR["XMLHttpRequest"] = createXmlHttpRequestObject ();
objetXHR["lienGet"] = "?affiche=affiche_article&id_article="+idArticle+"&article_action="+articleAction+"&langue_article="+articleLangue;
objetXHR["lienPost"] = "";
objetXHR["dataPost"] = "";
objetXHR["nomFenetreParent"] = "commun_boite";
objetXHR["nomFenetreEnfant"] = "boiteAfficheArticle";
objetXHR["positionXEnfant"] = 120;
objetXHR["positionYEnfant"] = ord-400;
objetXHR["simuleXML"] = faux;
objetXHR["simlueXmlTableauDonnee"] = new Array ();
objectTextResponse();
}[/code]
Ce sont mes premiers pas en JS, soyez indulgent...
Je n'ai pas mis certiane fonction comme montreFenetre et cacheFentre car je pense qu'elles n'apporterons pas grand chose : elles servent à interagir avec les CSS.