2 listes liees dynamiquement entre elles, dont le contenu vient d'une bdd // departements-cantons // maj javascript

Contenu du snippet

Je suis partie d'une source existante sur ce site, mais il y avait un probleme avec les donnees que je voulais liees, à savoir des departements, il y avait un soucis pour les départements corse 2a et 2b.
Voici la source, je ne mets que le la 2 eme partie du script, à savoir la combinaison javascript-ASP. Le reste du code se trouve ici : http://www.aspfr.com/code.aspx?ID=8682

Source / Exemple :


<script>

// attention new et pas New (javascript sensible a la casse)
var liste=new Array();

liste[0]="<select name='listeB'><OPTION VALUE=0>---</OPTION></select>";
    
<%
'-------------------------------------------------------------------------------------------------
'Pour générer le tableau, il est préférable d'utiliser un index (ici i) 
'Ici il y avait un pb avec les dpts Corses (2A et 2B)
'-------------------------------------------------------------------------------------------------
i=0
liste.movefirst

While Not liste.eof

	set liste2=DataCon.execute("select * from tb_cant where coddept='"&liste("coddept")&"'")
	
	'il faut reinitialiser la variable temp avant chaque génération d'une liste de canton
	temp = "<select name='listeB'>"
	
	While Not liste2.eof
		temp=temp&"<OPTION VALUE="&liste2("codcant")&">"&liste2("nomcant")&"</option>"
		liste2.movenext
	Wend
	temp= temp&"</select>"
	i=i+1
%>
   liste[<%=i%>]="<%=temp%>";

<%
	liste.movenext
Wend
%>
 function changeliste() {
	
     choix=document.monform.listeA.selectedIndex; // je récupère l'index plutot que la valeur
     document.monform.listeB.outerHTML=liste[choix];
};

</script>

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.