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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| /** Méthode éffectuant une requête Ajax
@param url : path du fichier interrogé
@param param : parametres a transmettre.
**/
XHR = function(url,param) {
// Création et instanciation de l'objet XHR
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
// Ouverture de la connexion avec le serveur
xhr.open('POST',url,true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
// Envoi de la requête XHR
xhr.send(param);
xhr.onreadystatechange = function()
{
if (xhr.readyState < 4)
{ //Si la requête n'est pas terminé
}
else if (xhr.readyState == 4 && xhr.status==200)
{ //Si la requête s'est terminé avec succès
XHRresult(xhr.responseText);
}
else if (xhr.readyState == 4 && xhr.status!=200)
{ //Si la requête s'est terminé sans succès
alert("La requête n'a pas aboutit, un problème est survenu." + xhr.status);
}
};
if(xhr.timeout)
{
xhr.timeout = 2000;
}
return xhr;
}
/** Methode analysant & traitant le xml retourné par la requête Ajax
@param response : reponse de la requête.
**/
XHRresult = function(response){
var selectDiv = document.getElementById("selectDiv");
if(selectDiv && response!="false")
{ // Si l'element existe
selectDiv.innerHTML = response;
}
else if(response=="false")
{ // Si la réponse envoyé du fichier php est null
alert("Le fichier PHP a répondu null!");
}
}
/** Methode déclenché sur le onchange du premier select
@param value : valeur selectionnée.
**/
generateSelect = function(value){
XHR("./generateSelect.php","value=" + value);
} |
Partager