Comunidad de diseño web y desarrollo en internet online

Subordinación comoboBox

Citar            
MensajeEscrito el 26 May 2006 09:31 am
Buenas otra vez, bueno estaba haciendo un combobox subordinado uno del otro y funciona, con los siguientes items:
Pricipal [ inglesa, flemish, nuptial, dauphin, arial, lydias, cloister, lindas, redstar]
Secundario [ negro, gris, azul, burdeos, verde, marrón, magenta]
Me funciona perfectamente, pero cuando quiero añadir un tercer comboBox, que sea subordinado de los dos primeros, no me funciona.
Le he llamado Terciario, y tendría estos items:
Terciario [ blanco, crema, ahuesado ]. El caso es que me funciona, pero en el tercer combo no aparecen los items que le corresponden ( [ blanco, crema, ahuesado]), sino los del secundario ( [ negro, gris, azul...] ). ¿ Qué estoy haciendo mal ?. Os adjunto el código:

Código :

PrincipalCb.dataProvider = [{label:"seleccione:"},{label: "inglesa", data: 1},{label: "flemish", data: 2}, {label: "nuptial", data: 3},{label: "dauphin", data: 4},{label: "arial", data: 5},{label: "lydian", data: 6},{label: "cloister", data: 7},{label: "lindas", data: 8},{label: "redstar", data: 9}];
SubCb.rowCount = 3;
inglesa = new Array("negro;inglesanegra.swf","gris;http://www.flashargentina.com","azul;http://www.flashargentina.com","burdeos;http://www.flashargentina.com","verde;http://www.flashargentina.com","marrón;http://www.flashargentina.com","magenta;http://www.flashargentina.com");
flemish = new Array("negro;http://www.flashargentina.com","gris;http://www.flashargentina.com","azul;http://www.flashargentina.com","burdeos;http://www.flashargentina.com","verde;http://www.flashargentina.com","marrón;http://www.flashargentina.com","magenta;http://www.flashargentina.com");
nuptial = new Array("negro;http://www.flashargentina.com","gris;http://www.flashargentina.com","azul;http://www.flashargentina.com","burdeos;http://www.flashargentina.com","verde;http://www.flashargentina.com","marrón;http://www.flashargentina.com","magenta;http://www.flashargentina.com");
SubCbsub.rowCount = 2;
blanco = new Array("blanco;inglesanegra.swf","crema;http://www.flashargentina.com");

//Creo un listener
listenerPrincipal = new Object();
   //que actua al evento change
   listenerPrincipal.change = function (){
   //Defino el item seleccionado
   var ItemSeleccionado = PrincipalCb.selectedItem.label;
   //Elimino todos los items del subcombo
   SubCb.removeAll();
   SubCbsub.removeAll();
   //Construyo los items del subcombo
   var subArray = eval(ItemSeleccionado);
   var SubCombo = new Array()
   var SubCombo = new Array()
   for(var i = 0; i < subArray.length; i++) {
         //Separo utilizando 
         SubCombo = subArray[i].split(";");
         SubCb.addItem(SubCombo[0],SubCombo[1],SubCombo[2]);
         SubCbsub.addItem(SubCombo[0],SubCombo[1]);
}
   }
   
//Creo un segundo listener para el segundo combo
listenerSecundario = new Object();
listenerTerciario = new Object();
//que actua al evento change
listenerTerciario.change = function (evt){
//y va a la página web seleccionada
   loadMovie(SubCbsub.selectedItem.data,"conte");
}
      
PrincipalCb.addEventListener("change", listenerPrincipal);
SubCb.addEventListener("change", listenerSecundario);
SubCbsub.addEventListener("change", listenerTerciario);


Gracias de antemano.

Por pandemonium

5 de clabLevel



 

msie
Citar            
MensajeEscrito el 26 May 2006 05:43 pm
La cosa se complica; el caso es que he añadido otro combo más, de modo que tendríamos: uno (con los siguientes items: [ norma diptico, americano, americano diptico, cuartilla ] ). dos (con los siguientes items: [ inglesa, flsemish, nuptial, dauphin ] ). tres (con los siguientes items: [ negro, gris, azul, burdeos] ). cuatro (con los siguientes items: [ blaco, nacar ahuesado ] ). De forma que puede hacer combinaciones entre ellos, pero que al final te lleven a una unica opción; ej: enlaza a una pelicula SWF externa con la siguiente caracteristica; norma diptico/nuptial/gris/nacar. Me funciona perfectamente con los dos primeros, pero cuando le quiero añadir los combos tres y cuatro, no. El problema es que no se exctamente como debo añadir el tres y cuatro en la definicion de los "label" y los "array".
Como podría mandarte un ejemplo para que lo vieseis?. Gracias

Código :

uno.dataProvider = [{label:"seleccione:"},{label: "norma diptico", data: 1},{label: "americano", data: 2}, {label: "americano diptico", data: 3}];
dos.rowCount = 3;
norma diptico = new Array("inglesa;inglesanegra.swf","flemish;http://www.cristalab.com","nuptial;http://www.cristalab.com","dauphin;http://www.cristalab.com");
americano = new Array("inglesa;inglesanegra.swf","flemish;http://www.cristalab.com","nuptial;http://www.cristalab.com","dauphin;http://www.cristalab.com");
americano diptico = new Array("inglesa;inglesanegra.swf","flemish;http://www.cristalab.com","nuptial;http://www.cristalab.com","dauphin;http://www.cristalab.com");
//Creo un listener
listenerPrincipal = new Object();
   //que actua al evento change
   listenerPrincipal.change = function (){
   //Defino el item seleccionado
   var ItemSeleccionado = uno.selectedItem.label;
   //Elimino todos los items del subcombo
   dos.removeAll();
   //Construyo los items del subcombo
   var subArray = eval(ItemSeleccionado);
   var SubCombo = new Array()
   for(var i = 0; i < subArray.length; i++) {
         //Separo utilizando 
         SubCombo = subArray[i].split(";");
         dos.addItem(SubCombo[0],SubCombo[1]);
}
   }
   
//Creo un segundo listener para el segundo combo
listenerSecundario = new Object();
//que actua al evento change
listenerSecundario.change = function (evt){
//y va a la página web seleccionada
   loadMovie(dos.selectedItem.data,"conte");
}
      
uno.addEventListener("change", listenerPrincipal);
dos.addEventListener("change", listenerSecundario);


¿Dónde debo introducir los niveles de los combos tres y cuatro?; ¿cómo asigno la acción?; ¿cómo creo los listener?

Por pandemonium

5 de clabLevel



 

msie
Citar            
MensajeEscrito el 29 May 2006 07:40 am
Por favor no me olviden.

Por pandemonium

5 de clabLevel



 

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.