• Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)
  • Cuixer, una forma de administrar páginas web que nunca viste!

carga de combos

Foros generales de ayuda Ext 2.0.

Ext.foro.Nuevo
Mensajes: 21
Registrado: 19 Ago 2008, 10:59
NotaPublicado: 13 Oct 2008, 11:46
Buenas

Tengo un "pequeño" problema con la carga de combos anidados, a ver si alguien me puede echar un cable.
Por un lado tengo el combo paises, que carga nada más inicializar el formulario y luego un combo dependiente, llamado provincias, que carga según el país seleccionado.
La carga me la efectúa sin problemas, pero (siempre hay un pero), tengo que seleccionar 2 veces el país la primera vez.. me explico
1.- Cargo el formulario
2- selecciono el país
3.- voy a seleccionar la provincia y no tengo datos
4.- selecciono el país de nuevo y me carga las provincias de dicho país
5.- selecciono otro país (sin cerrar el formulario) y me carga las provincias de ese otro país.
y así, mientras no cierre el formulario

he estado haciendo debug, y el caso es que el php, la primera vez que selecciono el país, no recibe el parámetro de la tarea a ejecutar ni del país sobre el cual efectuar la búsqueda de sus provincias..

Adjunto el código a ver si alguien me puede echar una mano

Y gracias por adelantado

Código: Seleccionar todo
var mystore_provincia = new Ext.data.Store({
                        proxy: new Ext.data.HttpProxy({
                                url: '../Remote/rellena_combos.php',
                                method: 'POST'
                        }),
                        reader: new Ext.data.JsonReader({
                                root: 'resultados_provincia',
                                totalProperty: 'total_provincia',
                                id: 'id_provincia'
                        }, [    { name: 'id_provincia' },
                                { name: 'nombre_provincia' }
                        ] )
                });

Busca_Provincia_Empresa = new Ext.form.ComboBox({
                        id: 'Busca_Provincia_Empresa',
                        fieldLabel: 'Provincia',
                        name: 'Busca_Provincia_Empresa',
                        store: mystore_provincia,
                        displayField: 'nombre_provincia',
                        valueField: 'id_provincia',
                        selectOnFocus: true,
                        anchor: '95%',
                        emptyText:'Por favor seleccione...',
                        triggerAction: 'all',
                        disabled: true
                });

var mystore_pais = new Ext.data.Store({
                        proxy: new Ext.data.HttpProxy({
                                url: '../Remote/rellena_combos.php',
                                method: 'POST'
                        }),
                        baseParams: {
                                tarea_combo: 'COMBO_PAIS'
                        },
                        reader: new Ext.data.JsonReader({
                                root: 'resultados_pais',
                                totalProperty: 'total_pais',
                                id: 'id_pais'
                        }, [    { name: 'id_pais' },
                                { name: 'nombre_pais' }
                        ] )
                });

Busca_Pais_Empresa = new Ext.form.ComboBox({
                        id: 'Busca_Pais_Empresa',
                        name: 'Busca_Pais_Empresa',
                        fieldLabel: 'Pais',
                        store: mystore_pais,
                        displayField: 'nombre_pais',
                        valueField: 'id_pais',
                        selectOnFocus: true,
                        anchor: '95%',
                        emptyText:'Por favor seleccione...',
                        triggerAction: 'all',
                        listeners:{
                                'select': function (combo,record,index){
                                        Busca_Provincia_Empresa.enable();
                                        mystore_provincia.load({
                                                params: {
                                                        id_pais: combo.getValue(),
                                                        tarea_combo: 'COMBO_PAIS_PROVINCIA'
                                          }
                                        });
                                        mystore_provincia.reload();
                                }
                        }
                });
Para no ver esta publicidad, debes ser usuario del Foro.
Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)


Cuixer, una forma de administrar páginas web que nunca viste!

Avatar de Usuario
Ext.foro.Administrador
Mensajes: 1932
Registrado: 07 Mar 2008, 20:45
Ubicación: Argentina
NotaPublicado: 13 Oct 2008, 21:30
La etiqueta es [ CODE ] no .
Aprender haciendo...
Desarrollo de aplicaciones en ExtJS [CONSULTAR].
Buscar en el foro antes de preguntar y Leer la Documentación.
Imagen
Avatar de Usuario
Ext.foro.Administrador
Mensajes: 1932
Registrado: 07 Mar 2008, 20:45
Ubicación: Argentina
NotaPublicado: 13 Oct 2008, 21:34
Podes basarte en ESTE ejemplo.
Aprender haciendo...
Desarrollo de aplicaciones en ExtJS [CONSULTAR].
Buscar en el foro antes de preguntar y Leer la Documentación.
Imagen

Ext.foro.Nuevo
Mensajes: 21
Registrado: 19 Ago 2008, 10:59
NotaPublicado: 14 Oct 2008, 13:20
Gracias Garras

Me basé en ese ejemplo, pero sigo sin darle solución

volveré a reprogramarlo
Avatar de Usuario
Ext.foro.Miembro
Mensajes: 143
Registrado: 05 Jun 2008, 09:21
NotaPublicado: 14 Oct 2008, 14:01
Un problema similar tuve hace un tiempo , y no habia podido darle solucion ya que el segundo store del segundo combo, no lograba disparlo antes de que se seleccionara el pais en tu caso y ya tener las provincias.

Habian posteado en el foro .com pero no encontré respuestas.

Vamos a tener que pensar otra alternativa :)

Saludos!
-Imagine It-
Para quienes se inician en el mundo de EXTJS:
TUTORIAL BASICO

Herramienta Fundamental para comenzar :
API
Avatar de Usuario
Ext.foro.Novato
Mensajes: 88
Registrado: 26 Oct 2007, 03:54
NotaPublicado: 14 Oct 2008, 17:18
Hace casi un año hice algo asi pero lo programe desde esta perspectiva:
Código: Seleccionar todo
//ds
var dsSitio = new Ext.data.Store({
   proxy: new Ext.data.HttpProxy({url: 'saca.php?op=sitio', waitMsg: 'Buscando...'}),
   reader: new Ext.data.JsonReader({},['sitio','id'])
});
dsSitio.load();

//combo
var SitioSigla = new Ext.form.ComboBox({
   store: dsSitio,
   displayField: 'sitio',
   valueField: 'id',
   name: 'SitioSigla',
   fieldLabel: 'Sigla Sitio',
   emptyText:'Seleccione...',
   width:200,
   triggerAction: 'all',
   hiddenName: 'SitioSigla',
   forceSelection:true,
   editable: true,
   allowBlank: false,
   typeAhead: true,
   mode: 'local',
   selectOnFocus: true
});
//acciones combo
SitioSigla.on('select', function() {
   var combo = SitioSigla.getValue();
   //segundo ds
   SitioSigla_data = new Ext.data.Store({
      proxy: new Ext.data.HttpProxy({url: 'saca.php?op=IDsitio&id='+combo, waitMsg: 'Buscando...'}),
      reader: new Ext.data.JsonReader({id: 'id'},['id', 'nombre']),
      remoteSort: false
   });

   SitioSigla_data.on('load', function(){
      //aca generas el nuevo combo y le pones el ds nuevo :D
   }
});

//cargar ds
SitioSigla_data.load();

Suerte!
El que dice: "Solo se que nada se", esta asumiendo que sabe algo.

Ext.foro.Nuevo
Mensajes: 1
Registrado: 18 Abr 2011, 12:12
NotaPublicado: 18 Abr 2011, 12:21
Hola amigos yo les mando una forma de recargar combos espero les sirva.
Código: Seleccionar todo
Ext.onReady(function() {

   var storeMenorClientes= new Ext.data.JsonStore({
      url         :   'obtenClientes.do',
      fields      :   ['idCliente','cliente'],
      root      :   'listClientes',
      autoLoad   :   true
      });
       
   var   comboMenorClientes= new Ext.form.ComboBox({
         id            :   'idCliente'
      ,   fieldLabel      :   'Clientes'
      ,   store         :   storeMenorClientes
      ,   emptyText      :   'Seleccione un Cliente'
      ,   valueField      :   'idCliente'
      ,   displayField   :   'cliente'
      ,   mode         :   'local'
      ,   editable      :   true
      ,   resizable       :   true   
      ,   handleHeight    :   10      
      ,   tabIndex      :   1   
      ,   width         :   350
      ,   forceSelection   :   true
      ,   shadow          :    true
      ,   triggerAction   :   'all'
          });


   var storeMenorUnidades= new Ext.data.JsonStore({
      url      :   'obtenListaEquipo.do',
      fields      :   ['idEquipo'],
      root      :   'lstEquipo',
      autoLoad   :   false
      });
   
   
   var   comboMenorUnidades= new Ext.form.ComboBox({
         id            :   'idUnidad'
      ,   fieldLabel      :   'Unidades'
      ,   store         :   storeMenorUnidades
      ,   emptyText      :   'Seleccione una Unidad'
      ,   valueField      :   'idEquipo'
      ,   displayField   :   'idEquipo'
      ,   mode         :   'local'
      ,   editable      :   true
      ,   resizable : true   
      ,   handleHeight    :   10      
      ,   tabIndex      :   1   
      ,   width         :   150
      ,   forceSelection   :   true
      ,   shadow          :    true
      ,   triggerAction   :   'all'
          });
   

   comboMenorClientes.on("select",function(combo,record,indice){
          if (Ext.getCmp('idCliente').getValue()!="")
          {
             comboMenorUnidades.clearValue();
             storeMenorUnidades.removeAll();
             storeMenorUnidades.load({params: {'idCliente': Ext.getCmp('idCliente').getValue()}});            
          }
      });   

});


Como pueden ver primero cargo el combo clientes, donde el load del store es true,
Posteriormente tengo un store para el combo unidades, el cual su load es false.
Y k cuando selecciono un elemento del combo clientes en la funcion de abajo

comboMenorClientes.on("select",function(combo,record,indice){

mando a cargar el combo unidades pasandole el valor del combo clientes seleccionado, espero les sirva,
muy sencillo.

Saludos

Volver a Ext 2.0: Ayuda





  • Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)
  • Cuixer, una forma de administrar páginas web que nunca viste!