Comunidad de diseño web y desarrollo en internet online

2 combobox anidados y alimentados por mysql

Citar            
MensajeEscrito el 08 Abr 2009 10:47 am
Hola,

necesito hacer 2 combobox, o un combobox y un datagrid, que se carguen desde mysql. Segun la opcion del combobox que se cargue los articulos en e datagrid
Algo asi:
http://www.canon.es/products_solutions/productselector/productselector.asp#subcat=2&list=1&cat=1

este es mi codigo, pero no funciona, por alguna razon cuando selecciono algo en el 2º combobox, se me cambia el 1º:

Código :

//Create LoadVars object and load file
lvOut = new LoadVars();               //create lv object 
myData = new LoadVars()
myData3 = new LoadVars()
myData.load(dominio+"cargaprovincias.php") //php line
myData.ref = this
//Fetch data 
myData.onLoad = function(succes){
   if(succes){
      total.text="Hay un total de "+this.cant+" coincidencias.";
      for(var i=0; i<this.cant; i++){
         
         //pa rellenar el comboProvincias
         myDP2 = new Array();
         for (var i = 0; i<this.cant; i++) {
            myDP2.addItem({Provincia:this["Provincia"+i]});
         }
         comboProvincias.dataProvider = myDP2;
         //herramienta de seleccion
         myComboListener = new Object();
         myComboListener.change = function(eventObj) {
            provincia.text="Picaderos de: "+comboProvincias.selectedLabel;
            lvOut.Provincia = comboProvincias.selectedLabel;         //assign user-input value to lv property called years
            lvOut.sendAndLoad(dominio+"buscapicaderos.php", myData, "POST"); //pilla los resultados y los manda a myData
            //nextFrame();
         };
         comboProvincias.addEventListener("change", myComboListener);
         ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
         ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
         //pa rellenar el comboPicaderos
         
         myDP3 = new Array();
         for (var i = 0; i<this.cant; i++) {
            myDP3.addItem({Nombre:this["Nombre"+i]});
         }
         comboPicaderos.dataProvider = myDP3;
         //herramienta de seleccion
         myComboListener3 = new Object();
         myComboListener3.change = function(eventObj) {
            picadero.text="Picaderos de: "+comboPicaderos.selectedLabel;
            lvOut.Picadero = comboPicaderos.selectedLabel;         //assign user-input value to lv property called years
            lvOut.sendAndLoad(dominio+"buscapicaderos.php", myData3, "POST"); //pilla los resultados y los manda a myData
            //nextFrame();
         };
         comboPicaderos.addEventListener("change", myComboListener3);
      
         ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

         
         /*myDP = new Array();
         for (var i = 0; i<this.cant; i++) {
            myDP.addItem({Nombre:this["Nombre"+i],Descripcion:this["Descripcion"+i],Email:this["Email"+i],Fecha:this["Fecha"+i]});
         }
         myGrid.dataProvider = myDP;
         //herramienta de seleccion
         myGridListener = new Object();
         myGridListener.change = function(eventObj) {
            var tgTabla = eventObj.target;
            var seleccionado = tgTabla.selectedItem;
            feedback.htmlText="<b>"+seleccionado.Nombre+"</b>"+"<br>"+seleccionado.Descripcion+"<br>"+"<a href='mailto:"+seleccionado.Email+"'>"+"<font color='#0000FF'>"+seleccionado.Email+"</font>"+"</a>"+"<br>"+seleccionado.Fecha;
         };
         myGrid.addEventListener("change", myGridListener);
         */
         
      }
   } 
   else {
      trace("Error loading data")
   }
}

stop();

Por Joseanmola

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Abr 2009 01:09 pm
A vuelo de pájaro se ve que no está encapsulada la funcionalidad. Dos observaciones rápidas: rellenas los combos y tu grid, además de declarar los listener dentro de un loop, esto es lo mismo que decir que lo haces más de una vez (a menos que cant sea siempre 1, con lo cual no tiene sentido el loop) Luego ambos combos usan el mismo LoadVars en el evento change, con lo cual el onLoad de ese LoadVars recibe resultados de dos niveles distintos ... y es muy probable que los mezcle ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Abr 2009 01:49 pm
Muchas zankius.... aunq me he kedado igual. El problema es q no se apenas de ACTIONSCRIPT y este codigo lo he ido cogiendo de poraqui y poralla, y ahora no se arrglarlo..

Como podria hacerlo facilmente?

Por Joseanmola

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Abr 2009 01:52 pm
Vale, si no sabes AS, lo mas fácil es que yo te lo haga y tu lo copies ... o que empieces por el principio, que es entender como funciona un LoadVars

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Abr 2009 02:04 pm
Bueno... eso estaria genial, pero como q no creo q este nadie por la labor. He estado buscando un ejemplo pero no he logrado dar con nada.
Tengo algunas nociones de como cargar externamente cosas, pero esto me supera...
Alguna pistilla mas...?

Por Joseanmola

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Abr 2009 02:26 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Abr 2009 03:37 pm
Ya me mire ese tuto en su dia, pero no me ayuda para cargar un datagrid en funcion de lo q se elija en un cobo previamente cargado.

Por Joseanmola

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Abr 2009 04:03 pm
Bueno, la complejidad es la suma de cosas simples, por eso los tutos explican los principios, no como combinarlos.
Por ejemplo en esta tienda: http://www.flash-db.com/Tutorials/newstore/ el combo rellena el panel con productos ... pero se basa en los principios de carga externa.

En este caso debes entender:
- Como funciona un LoadVars
- Como se declara un evento change de un combo

Luego no puedes declararlo dentro del loop, tampoco puedes usar el mismo LoadVars para los dos combos, a menos que el onLoad discrimine entre las respuestas

Jorge

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Abr 2009 04:15 pm
Bueno... estudiare este finde. Suficiente me has ayudado. Muchas gracias, de verdad.

Por Joseanmola

10 de clabLevel



 

firefox

 

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