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 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
| function change()
{
//Si c'est AUCUN qui est sélectionné, il faut réinitialiser les 2 autres combos et quitter
var sel = document.getElementById('pays');
if (sel.options[sel.selectedIndex].value == -1)
{
document.getElementById('subdivision_1').options.length=0;
document.getElementById('subdivision_2').options.length=0;
return;
}
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function()
{
//attendons que le requete soit finie...
if(xhr.readyState == 4 && xhr.status == 200)
{
var rst = xhr.responseXML;
var items=rst.getElementsByTagName('element');
document.getElementById('subdivision_1').options.length=0;
//penser à réinitialiser aussi subdivision_2
document.getElementById('subdivision_2').options.length=0;
var myOption = new Option(" ","-1",true);
document.getElementById('subdivision_1').options[0]=myOption;
for(var i=0;i<items.length;i++)
{
var myOption = new Option(items[i].getElementsByTagName('option')[0].firstChild.nodeValue,items[i].getElementsByTagName('valeur')[0].firstChild.nodeValue,false,true)
document.getElementById('subdivision_1').options[i+1]=myOption;
}
document.getElementById('subdivision_1').selectedIndex=0;
//mise à jour de subdivision_2 pour la 1ere subdivision_1 affiché (sinon incohérence au niveau de l'affichage)
change2();
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajaxSubdivision1.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id du pays
sel = document.getElementById('pays');
pays = sel.options[sel.selectedIndex].value;
xhr.send("Pays="+pays);
}
function change2()
{
//si une seule subdivision_1 ...
if (document.getElementById('subdivision_1').options.length==1)
{
//on vide la derniere combo
document.getElementById('subdivision_2').options.length==0;
//on quitte
return;
}
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
var rst = xhr.responseXML;
var items=rst.getElementsByTagName('element');
document.getElementById('subdivision_2').options.length=0;
var myOption = new Option(" ","-1",true);
document.getElementById('subdivision_2').options[0]=myOption;
for(var i=0;i<items.length;i++)
{
var myOption = new Option(items[i].getElementsByTagName('option')[0].firstChild.nodeValue,items[i].getElementsByTagName('valeur')[0].firstChild.nodeValue,false,true)
document.getElementById('subdivision_2').options[i+1]=myOption;
}
document.getElementById('subdivision_2').selectedIndex=0;
cache();
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajaxSubdivision2.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id de la region et du pays
sel2 = document.getElementById('pays');
pays = sel2.options[sel2.selectedIndex].value;
sel = document.getElementById('subdivision_1');
subdivision_1 = sel.options[sel.selectedIndex].value;
xhr.send("Subdivision1="+subdivision_1 + "&Pays="+pays);
}
function cache()
{
// On cache la partie département (subdivision_2)
document.getElementById('depart_part').style.display="none";
// Si il n'y a pas de region (subdivision_1) ...
if (document.getElementById('subdivision_1').options.length == 1)
{
// On cache la partie region_part
document.getElementById('region_part').style.display="none";
}
else
{
// Sinon on la montre
document.getElementById('region_part').style.display="block";
}
// Si il n'y a pas de département (subdivision_2) ...
if (document.getElementById('subdivision_2').options.length == 1)
{
// On cache la partie depart_part
document.getElementById('depart_part').style.display="none";
}
else
{
// Sinon on la montre
document.getElementById('depart_part').style.display="block";
}
} |
Partager