[java-script] une liste dréroulante qui dépend d'une autre ....

une liste dréroulante qui dépend d'une autre .... [java-script] - Programmation

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+

Reply

Marsh Posté le 06-04-2001 à 17:05:09   

Reply

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 :D
Si t'es en asp, bah... je pense ke ce serait plus facile a faire... :)

Reply

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.

Reply

Marsh Posté le 16-04-2001 à 14:10:47    

Darkoli>
 
si tu as la tps, tu peux essayer de le faire STP  :cry:  
 
je te remercie  :jap:

Reply

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>

Reply

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

Reply

Marsh Posté le 18-04-2001 à 17:46:46    

merci à vous 2, je v essayer

Reply

Marsh Posté le 18-04-2001 à 18:10:02    

funwebmax : je termine mon truc demain et je le poste.

Reply

Marsh Posté le 18-04-2001 à 18:27:30    

merci darkoli, t trop sympa  :jap:

Reply

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

Reply

Marsh Posté le 18-04-2001 à 18:52:04   

Reply

Marsh Posté le 18-04-2001 à 18:55:44    

merci mais ça demande pas trop de ressources vu ke certaines sont cachées ?

Reply

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...

Reply

Marsh Posté le 18-04-2001 à 20:52:43    

ok

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed