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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| function getSousRubriques(pere,fils,niveauPere,userAuthentifie)
{
if (niveauPere<3 || userAuthentifie=="oui")
{
var index = pere.selectedIndex;
var valeur = pere.options[index].value
var url = 'RemplirSousRubriques?listeSelect=' + valeur;
if (window.ActiveXObject)
{
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)
{
httpRequest = new XMLHttpRequest();
}
httpRequest.open("GET", url, true);
httpRequest.onreadystatechange = function() {processRequestSousRubriques(fils,niveauPere,userAuthentifie); } ;
httpRequest.send(null);
}
}
function processRequestSousRubriques(objet,niveauPere,userAuthentifie)
{
if (httpRequest.readyState == 4)
{
if(httpRequest.status == 200)
{
//la variable contient le xml retourner par le servlet
var profileXML = httpRequest.responseText;
//on met a jour le html
updateHTMLSousRubriques(profileXML,objet,niveauPere,userAuthentifie);
}
else
{
alert("Erreur \n"+ httpRequest.status +":"+ httpRequest.statusText);
}
}
}
function updateHTMLSousRubriques(profileXML,objet,niveauPere,userAuthentifie)
{
objet.innerHTML="";
var profileBody = profileXML;
var valeurs = new Array();
var val;
var texteAInclure;
valeurs = profileBody.split("|");
if (valeurs[0]!="")
{
var selectbox = document.createElement("SELECT");
var niveau = niveauPere+1;
selectbox.id="listeDeroulanteRecherche"+niveau;
var nouveauDiv = document.createElement("DIV");
nouveauDiv.id="niveau"+(niveau+1);
selectbox.onchange= "getSousRubriques("+selectbox.id+",document.getElementById('"+nouveauDiv.id+"'),"+niveau+",'"+userAuthentifie+"');valeursRubriquesMAJ(this.value,"+niveau+");";
//Ajout du début du select
texteAInclure="<select id=\""+selectbox.id+"\" onchange=\""+selectbox.onchange+"\">";
//Ajout d'une ligne car la sélection ne se fait pas si il n'y a qu'une seule valeur
texteAInclure+="<option value=\"vide\">"+"---Sélectionner---"+"</option>";
for (var i=0; i < (valeurs.length-1);i++){
val = valeurs[i].split("-");
texteAInclure+="<option value=\""+val[1]+"\">"+val[0]+"</option>";
}
texteAInclure+="</select>";
objet.innerHTML=texteAInclure;
objet.appendChild(nouveauDiv);
}
} |
Partager