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
   |  
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
	<title>Listes déroulantes dynamiques</title>
	<link rel="stylesheet" type="text/css" href="JS-DynamicSelect.css">
	<script language="javascript" src="JS-DynamicSelect.js"></script>
	<script language="javascript">
	function setRegion(oSelect) {
		// Par défaut, la valeur de retour de l'event est mis à false.
		event.returnValue = false;
		// L'objectif est de charger la liste déroulante slRegion en
		// fonction de la valeur sélectionnée dans la liste déroulante
		// courante (identifiée par le paramètre oSelect). La liste
		// slRegion va être construite dynamiquement en utilisant le
		// tableau tCountyLink.
		if (oSelect != null) {
			// On vérifie que l'entrée dans tRegionLink existe pour la
			// valeur de oSelect.
			if (tRegionLink[oSelect.value] != undefined) {
				// L'entrée existe, on peut donc récupérer la chaine des 
				// régions et la convertir en tableau.
				var tRegions = new Array;
				tRegions = tRegionLink[oSelect.value].split(";");
				// Nous pouvons mettre à jour le titre pour les régions.
				var oLabel = document.all.lbRegion;
				if (oLabel != null) oLabel.innerText = tRegions[0] + ":";
				// On trie le tableau des régions, juste pour la frime,
				// après avoir supprimé la première entrée. L'idéal étant
				// d'avoir les éléments déjà trier dans la string :)
				tRegions.shift(); tRegions.sort();
				// Puis, construisons le contenu de la liste slRegion.
				var oRegions = document.all.slRegion;
				if (oRegions != null) {
					// D'abord, nous devons nettoyer la contenu actuel de
					// la liste slRegion.
					oRegions.innerHTML = "";
					// Ensuite, nous pouvons générer le nouveau contenu.
					for (cnt=0; cnt<tRegions.length; cnt++) {
						var oOption = document.createElement("OPTION");
						oRegions.options.add(oOption);
						oOption.innerText = tRegions[cnt];
						oOption.value = cnt;
					}
					// En théorie, tout s'est bien passé, donc fixons la
					// valeur de retour de l'event à true.
					event.returnValue = true;
				}
			}
		}
		// On désactive l'héritage de l'event.
		event.cancelBubble = true;
	}
	</script>
</head>
 
<body onload="setRegion(document.all.slCountry);">
	<div class="box">
		<div class="dvLabel" id="lbCountry">Pays:</div>
		<div class="dvSelec" id="dvCountry">
			<select id="slCountry" onchange="setRegion(this);" class="inSelect">
				<option value="BE">Belgique</option>
				<option value="FR">France</option>
			</select>
		</div>
	</div>
	<div class="boxRight">
		<div class="dvLabel" id="lbRegion"></div>
		<div class="dvSelec" id="dvRegion">
			<select id="slRegion" class="inSelect"></select>		
		</div>
	</div>
</body>
</html> |