Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/10/2008, 05:06
Jamlet
 
Fecha de Ingreso: mayo-2008
Mensajes: 163
Antigüedad: 16 años, 6 meses
Puntos: 1
Problema con combobox dependientes

Estoy intentando hacer comboboxes dependientes que muestren los datos de un XML. De momento he logrado que el primer combobox cargue lo que quiero pero hasta ahí.

De momento solo quiero que en el segundo combobox se cargue un texto dependiendo de lo que se seleccionó en el anterior, pero no me sale. A ver si podeis darme alguna pista de por donde tirar.

Este es el código:

Código actionscript:
Ver original
  1. miXML = new XML();
  2. miXML.ignoreWhite = true;//hace que los espacios en blanco no den problemas
  3. miXML.onLoad = almacenaProvincia;//la funcion se ejecuta al cargar el objeto XML
  4. miXML.load("bodegas.xml");//la ruta del XML
  5.  
  6. cbo_ciudad.enabled = false;//mantiene apagado el combobox de ciudad
  7. cbo_provincia.addEventListener("change", eventoComboBox);//escucha el combobox provincia y cuando cambia lanza el evento
  8. function eventoComboBox(evento) {
  9.     if(evento.target.selectedItem.data <= 0)//si el data de cbo_provincia es menor que 0...
  10.        almacenaCiudad(evento.target.selectedItem.data);//¿envia ese valor a la funcion almacenaCiudad?
  11.     else
  12.         cbo_ciudad.enabled = false;//Si no sigue igual
  13. }
  14.  
  15. function almacenaProvincia() {
  16.     aProvincia = new Array();
  17.     aProvincias = this.firstChild.childNodes;//carga los primeros hijos del XML en esta array
  18.     vTotal = aProvincias.length;//cuenta cuantos nodos hay
  19.     for (i=0; i<vTotal; i++) {
  20.         if(aProvincias[i].nodeName == "provincia") {//si el nombre del nodo es provincia...
  21.         aProvincia.push(aProvincias[i].attributes.pNombre);//almacena el atributo pNombre en esta array
  22.         }
  23.     }
  24.     cbo_provincia.dataProvider  = aProvincia;//carga los datos de la array en el combobox
  25. }
  26.  
  27. function almacenaCiudad(opc) {
  28.     aCiudad = new Array({label:"- Selecciona -", data:0});
  29.     if(opc == 1) {
  30.         aCiudad.push({label:"Funcionó"});
  31.     }else{
  32.         aCiudad.push({label:"No funcionó"});
  33.     }
  34.     cbo_ciudad.dataProvider = aCiudad;
  35.     cbo_ciudad.addEventListener("load", ciudadCargada);
  36.     cbo_ciudad.enabled = true;
  37. }
  38.  
  39. function ciudadCargada() {
  40.     cbo_ciudad.selectedIndex = 0;
  41. }

El código es una mezcla de dos tutoriales que encontré así que si algo que parece estar mal, seguramente esté mal

El plan es que lo que se cargue tras elegir opción en el primer combo sean más opciones (las ciudades correspondientes a la provincia seleccionada) pero de momento, si me podeís ayudar a diferenciar entre una provincia y otra, os estaría muy agradecido.