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
| jQuery(document).ready(function($){
// si un élément ayant pour ID 'sPays_nom' existe
// on génère la liste déroulante des pays
if($("#sPays_nom".length != 0))
{
$.ajax({
type: "GET",
url: './includes/data/geographie.xml',
dataType: "xml",
success: function(xml)
{
// Construction de l'array pays.
var jObjPays = $( xml ).find( "Terre" ).children( "Pays" ),
paysLength = jObjPays.length,
jObjPaysID = jObjPays.children( "PaysID" ),
jObjPaysNameEn = jObjPays.children( "PaysNameEN" ),
jObjPaysNameFr = jObjPays.children( "PaysNameFR" ),
jObjRegions = jObjPays.children( "Regions" ),
regions = [],
pays = [],
jObjRegion = null,
jObjRegionLength = 0;
for( var i = 0; i < paysLength; i++ )
{
jObjRegion = jObjRegions.eq( i ).children( "Region" );
jObjRegionLength = jObjRegion.length;
for ( var j = 0; j < jObjRegionLength; j++ ){
regions.push( [
jObjRegion.eq( j ).children( "RegionID" ).text(),
jObjRegion.eq( j ).children( "RegionName" ).text()
] );
}
pays.push( [
jObjPaysID.eq( i ).text(),
jObjPaysNameEn.eq( i ).text(),
jObjPaysNameFr.eq( i ).text(),
regions
] );
regions = [];
jObjRegion = null;
jObjRegionLength = 0;
}
var LG = $("#hiddenLangue").val();
(LG == "FR") ? NAME = 2 : NAME = 1;
//triage alphabétique des pays pour affichage dans la liste déroulante
pays.sort(function(a,b){
paysA = a[NAME];
paysA = effacerAccents(paysA);
paysB = b[NAME];
paysB = effacerAccents(paysB);
if (paysA < paysB){
return -1;
}else return 1;
});
pays.forEach( function(value)
{
$("#sPays_nom").append("\r\t\t\t\t\t\t\t\t\t");
$("#sPays_nom").append(new Option(value[ NAME ], value[ 0 ], false, true));
});
// placer le selected par défaut sur 'vide'
$("#sPays_nom").val(-100);
if(($("#sPays_nom".length != 0)) && ($("#sRegionLG_nom".length != 0)))
{
// cette fonction s'active au changement de selected (onChange)
$("#sPays_nom").change(function()
{
paysSelected = this.value;
$("#sRegionLG_nom").get(0).length = 1;
pays.forEach(
function(value)
{
//alert(paysSelected);
if(value[0] == paysSelected)
{
value[3].forEach(
function(region)
{
$("#sRegionLG_nom").append(new Option(region[1], region[0], false, true));
$("#sRegionLG_nom").append("\n\t\t\t\t\t\t\t\t\t");
});
}
});
// placer le selected par défaut sur 'vide'
$("#sRegionLG_nom").val(-100);
});
$("#sRegionLG_nom").get(0).length = 1;
$("#sRegionLG_nom").val(-100);
}
}
});
}
}); |
Partager