Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/10/2008, 02:50
Jamlet
 
Fecha de Ingreso: mayo-2008
Mensajes: 163
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Problema con combobox dependientes

Ese es el problema, que no sé como decirle a la función almacenaCiudad() cual es la provincia seleccionada.

Con este codigo que pongo ahora logro que la función almacenaCiudad() reciba el valor "0" cuando en el primer combobox elijo la opción "- seleccione-". Pero eso lo consigo porque meto lo de "data" a mano. ¿Sabes cómo puedo hacer para asignar un valor de "data" a cada elemento de la array automaticamente? Es que sino no veo como avanzar.

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