Lien entre 2 listbox

Contenu du snippet

Voila, je sais plus qui me l'avais demandé y a un moment sur le chat ... je l'ai fait, autant poster ! Autant vous dire qu'à 3 listbox le code se complique un peu plus :)

Source / Exemple :


<html>
<script language=javascript>
	//colX[entrée referante][sortie référente]

	
	cols = new Array();
	// Colonne 2
		cols[2] = new Array();

		// Références à l'entrée 0 de la colonne 1
			cols[2][0] = new Array();

			cols[2][0][0] = document.createElement("OPTION"); // création d'un élément option
			cols[2][0][0].value = "value0-0";
			cols[2][0][0].text = "text0-0";

		// Références à l'entrée 1 de la colonne 1
			cols[2][1] = new Array();	
		
			cols[2][1][0] = document.createElement("OPTION");
			cols[2][1][0].text = "text1-0";
			cols[2][1][0].value = "value1-0";

	// Fin colonne 2

	function Build_List(list) {
		nblist = list.id.substr(list.id.length-1,1); // récupération du numéro de la liste : id="listeX" => liste nb X

		++nblist;

		newlist = document.getElementById("list"+nblist);

		if (newlist.length > cols[nblist][list.selectedIndex].length) { // on cherche à définir le max pr la boucle
			maxi = newlist.length;
		}
		else
		{	
			maxi = cols[nblist][list.selectedIndex].length;
		} 
	
		for(i=0;i<maxi;i++) {
			if (i < newlist.length) {
				newlist.remove(i); // on efface les anciennes entrées
			}

			if (i < cols[nblist][list.selectedIndex].length) {			
				newlist.add(cols[nblist][list.selectedIndex][i]); // on met les nouvelles
			}
		}

		newlist.change; // on update
	}
</script>
<body>
<select name=choix1 id=list1 onchange="Build_List(this);" multiple>
	<option value="test">Option1</option>
	<option value="test2">Option 2</option>
</select>
<select name=choix2 id=list2 multiple>
</select>
</body>
</html>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.