une liste dréroulante qui dépend d'une autre .... [java-script] - Programmation
Marsh Posté le 06-04-2001 à 17:13:54
Pour faire ca, mon avis tu recharge la page, non ?
En javascript... je vois kune maniere
Mémoriser tous les choix possibles de ta deuxieme liste... et de n'aficher ke celle correspondant au choix de ta premiere liste. Mais la, ca va bouffer en ressources
Si t'es en asp, bah... je pense ke ce serait plus facile a faire...
Marsh Posté le 08-04-2001 à 00:10:42
ben c'est super facile en javascript :
il faut que tu mettes tes données dans des tableaux javascript.
tu crée la premiere liste normalement avec pour chaque objet un id entre 0 et n-1 Comme ca quand tu lis l'id, il peut correspondre à un element du tableau a.
le tableau b est un tableau a deux dimension qui contient pour haque choix de a les differents listes de b à afficher.
exemple :
a={ville,pays,animal}
b={{paris,belfort,venise},{france,italie,belgique,espagne},{chat,chien}}
c={3,4,2}
c : nombre d'éléments de chaque liste.
La liste b doit etre crée avec le nombre max d'elements. c'est à dire qu'elle doit avoir une taille de 4.
principe : sur un changement de a, tu récupere l'id qui correspond à l'indice dans b de la liste à afficher.
Marsh Posté le 16-04-2001 à 14:10:47
Darkoli>
si tu as la tps, tu peux essayer de le faire STP
je te remercie
Marsh Posté le 18-04-2001 à 14:37:07
Essaye un truc de ce style :
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Nouvelle page 1</title>
</head>
<body>
<form name="doublecombo">
<p><select name="boite1" size="1" onChange="redirect(this.options.selectedIndex)">
<option>texte0b1</option>
<option>texte1b1</option>
<option>texte2b1</option>
</select>
<select name="boite2" size="1">
<option value="lien0-0">texte0-0b2</option>
<option value="lien0-1">texte0-1b2</option>
<option value="lien0-2">texte0-2b2</option>
</select>
<input type="button" name="test" value="Go!"
onClick="go()">
</p>
<script>
<!--
var groups=document.doublecombo.boite1.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()
group[0][0]=new Option("texte0-0b2","lien0-0" )
group[0][1]=new Option("texte0-1b2","lien0-1" )
group[0][2]=new Option("texte0-2b2","lien0-2" )
group[1][0]=new Option("texte1-0b2","lien1-0" )
group[1][1]=new Option("texte1-1b2","lien1-1" )
group[2][0]=new Option("texte2-0b2","lien2-0" )
group[2][1]=new Option("texte2-1b2","lien2-1" )
group[2][2]=new Option("texte2-2b2","lien2-2" )
group[2][3]=new Option("texte2-3b2","lien2-3" )
var temp=document.doublecombo.boite2
function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}
function go(){
location=temp.options[temp.selectedIndex].value
}
//-->
</script>
</form>
<p align="center"><font face="arial" size="-2">This free script provided by</font><br>
<font face="arial, helvetica" size="-2"><a href="http://wsabstract.com">Website
Abstraction</a></font></p>
</body>
</html>
Marsh Posté le 18-04-2001 à 14:43:13
une autre solution pas trop dure : tu prépare tous les <select..> possibles mais tu les caches (cf. css) et tu n'affiche que le bon en fonction du premier choix de l'utilisateur
Marsh Posté le 18-04-2001 à 18:52:04
si tu veux un exemple de ce que je t'indique comme solution tu peux aller jeter un oeil sur le site de marcopoly : www.marcopoly.com
Marsh Posté le 18-04-2001 à 18:55:44
merci mais ça demande pas trop de ressources vu ke certaines sont cachées ?
Marsh Posté le 18-04-2001 à 20:44:28
ben ça dépend du nombre de tes <selec...> mais de tt façons dans tous les cas, y compris les solutions de darkoli et bullbizzard toutes les données devront être chargées dès le départ...
Marsh Posté le 06-04-2001 à 17:05:09
Encore du Java-script
Si qqn avait un script kom ça, ce serait cool
g un formulaire avec 2 listes déroulantes
appelons, la première a, la deuxième b
je voudrais ke kan choisi une option ds la liste déroulante a (option choisi a')
eh bien que ça affiche ds la liste déroulante, tous les options b'
Vous comprenez, en fait, je voudrais ke le deuxième formulaire réagisse en fonction du premier
si vous avez ça, je vous remercie d'avance
a+