Foro

Ayuda con formularios

0
Buenas noches Estoy realizando una aplicacion con Extjsn Y se me han presentado varios incovenientes. Realice un formulario para ingresar datos a una base de datos y por tener muchos campos lo organice con pestañas pero no me guarda la informacion. Por otra parte no he podido con el login de la aplicacion, no se si estoy comentiendo errores de sitaxis o que sucede. Agradeceria mucho la colaboracion Cordial saludo
0
Para enviar información de varios paneles necesitas recolectarla si creaste varios formularios, si solamente creaste un solo formulario y luego le agregaste un TabPanel con campos simplemente harías el submit y automáticamente te coje todos los campos. Saludos
0
Muchas Gracias por tu respuesta. Adjunto el formulario para ver si me puedes colaborar ya que he revisado y no encuentro la solucion <!-- s:( --><!-- s:( -->
Ext.ns('com.quizzpot.tutorial');
Ext.BLANK_IMAGE_URL = '../../Ext/resources/images/default/s.gif';
com.quizzpot.tutorial.SubmitFormTutorial = {
	    init: function(){
		this.form = new Ext.form.FormPanel({
		//standardSubmit: true, // traditional submit
		url: 'guardar.php',
		//labelAlign: 'top',
		border:false,
        title: 'Informacion del cliente',
        bodyStyle:'padding:5px',
        width: 600,
		// INICIO CON LA PRIMERA COLUMNA
        	items: [{
            	layout:'column',
            	border:false,
            items:[{
                columnWidth:.5,
                layout: 'form',
                border:false,
				// CAJA TEXTO CEDULA
            items: [{
                	xtype:'numberfield',
                	fieldLabel:'Cedula',
                	name:'cedula',
                	allowBlank:false,
               		anchor:'95%'},
				// COMBO DEPARTAMENTOS
		    {xtype:'combo',
                    name: 'cod_depa',
                    fieldLabel:'Depto Exp',
                    allowBlank:false,
                    emptyText: 'Seleccione el departamento...',
                    //width:100,
                    //editable :true,//si deseas que no puedan escribir en le combo, solo seleccionar
                    valueField : 'cod_depa',//verdadero valor del combo
                    displayField : 'nom_depa',//valor mostrado al usuario
                    hiddenName : 'cod_depa',//si deseas enviar a tu archivo php el valor oculto debes configurar esta propiedad, sino te enviara el valor desplegado al usuario
                    mode: 'remote',//para que no haga que el store se recargue cada vez que se despliega el combo debemos configurar esta propiedad asi
                    triggerAction: 'all',//si no configuras esta propiedad cuando selecciones un valor del listado desaparecerán los demás como una especie de filtro
                    store: new Ext.data.JsonStore({//he aqui el store
                    url : 'combo_dep_exp.php', //la pagina de la cual tomaras los datos pa cargar
                    fields: ['cod_depa', 'nom_depa'],//campos de mi almacen
                    root: 'datos',//este valor nos servirá para tomar los datos que regresemos desde la BD
                    id: 'cod_depa', //cual de los campos 'fields' será el utilizado como identificador único dentro del store
                    autoLoad :true}), // si deseas que tu combo se cargue apenas se muestre, sino tendrás que hacerlo manualmente
               		anchor:'95%'},
					// CAJA TEXTO NOMBRE
				{xtype:'textfield',
                    fieldLabel: 'Nombre',
                    name: 'nombre',
                    anchor:'95%'}]},
					// AQUI FINALIZO LA PRIMERA COLUMNA
					//Y SE INICIA LA SEGUNDA COLUMNA
			{
                		columnWidth:.5,
                		layout: 'form',
                		border:false,
						// CALENDARIO FECHA EXPEDIXION
                	items: [{
                    	xtype:'datefield',
						layout: 'column',
                        fieldLabel: 'Fec Expedicion',
                        name: 'fecha_exp',
                        emptyText:'Insertar fecha...',
                        format:'Y-m-d',
                        editable :false,
                        allowBlank:false,
                		anchor:'95%'},
						// COMBO CIUDAD
					{xtype:'combo',
                        //id :'idcentral',
                        name: 'cod_ciudad',
                        fieldLabel:'Mun Expedicion',
                        allowBlank:false,
                        emptyText: 'Seleccione el Municipio...',
                        //width:100,
                        editable :false,//si deseas que no puedan escribir en le combo, solo seleccionar
                        valueField : 'cod_ciudad',//verdadero valor del combo
                        displayField : 'nom_ciudad',//valor mostrado al usuario
                        hiddenName : 'cod_ciudad',//si deseas enviar a tu archivo php el valor oculto debes configurar esta propiedad, sino te enviara el valor desplegado al usuario
                        mode: 'remote',//para que no haga que el store se recargue cada vez que se despliega el combo debemos configurar esta propiedad asi
                        triggerAction: 'all',//si no configuras esta propiedad cuando selecciones un valor del listado desaparecerán los demás como una especie de filtro
                        store: new Ext.data.JsonStore({//he aqui el store
                        url : 'combo_mun_exp.php', //la pagina de la cual tomaras los datos pa cargar
                        fields: ['cod_ciudad', 'nom_ciudad'],//campos de mi almacen
                        root: 'datos',//este valor nos servirá para tomar los datos que regresemos desde la BD
                        id: 'cod_ciudad', //cual de los campos 'fields' será el utilizado como identificador único dentro del store
                        autoLoad :true }),// si deseas que tu combo se cargue apenas se muestre, sino tendrás que hacerlo manualmente
                        anchor:'95%'},
						// CAJA TEXTO APELLIDO
					{xtype:'textfield',
                    	fieldLabel: 'Apellido',
                    	name: 'apellido',
                    	anchor:'95%'}] }] },// CIERRO EL PRIMER FORMULARIO
				
				// INICIO CON LOS FORMULARIOS EN PESTAÑAS
							{xtype:'tabpanel',
           			 			plain:true,
            					activeTab: 0,
            					height:320,
            					/*
              					By turning off deferred rendering we are guaranteeing that the
              					form fields within tabs that are not activated will still be rendered.
              					This is often important when creating multi-tabbed forms.
            					*/
            					deferredRender: false,
            					defaults:{bodyStyle:'padding:10px'},
								//INICIO CON LOS ELEMENTOS DE CADA PESTAÑA
								// PESTAÑA UBICACION
            				  		items:[{
                						title:'Ubicacion',
                						layout:'form',
                						defaults: {width: 230},
                						defaultType: 'textfield',
								
                					items: [{
                    					fieldLabel: 'Direccion',
                    					name: 'direccion',
                    					allowBlank:false},
									
									{fieldLabel: 'Celular',
                    				 name: 'celular'},
									
									{fieldLabel: 'Telefono',
									 name: 'telefono'},
									
									{xtype:'combo',
                                  //id :'idcentral',
                                     name: 'cod_depa2',
                                     fieldLabel:'Departamento',
                                     allowBlank:false,
                                     emptyText: 'Seleccione el departamento...',
                                  //width:100,
                                     editable :false,//si deseas que no puedan escribir en le combo, solo seleccionar
                                     valueField : 'cod_depa',//verdadero valor del combo
                                     displayField : 'nom_depa',//valor mostrado al usuario
                                     hiddenName : 'cod_depa',//si deseas enviar a tu archivo php el valor oculto debes configurar esta propiedad, sino te enviara el valor desplegado al usuario
                                     mode: 'remote',//para que no haga que el store se recargue cada vez que se despliega el combo debemos configurar esta propiedad asi
                                     triggerAction: 'all',//si no configuras esta propiedad cuando selecciones un valor del listado desaparecerán los demás como una especie de filtro
                                     store: new Ext.data.JsonStore({//he aqui el store
                                     url : 'combo_dep_exp.php', //la pagina de la cual tomaras los datos pa cargar
                                     fields: ['cod_depa', 'nom_depa'],//campos de mi almacen
                                     root: 'datos',//este valor nos servirá para tomar los datos que regresemos desde la BD
                                     id: 'cod_depa', //cual de los campos 'fields' será el utilizado como identificador único dentro del store
                                     autoLoad :true })// si deseas que tu combo se cargue apenas se muestre, sino tendrás que hacerlo manualmente
                                  
  /*listeners : {
  select : function(){
      //qui puedes colocar algo que se ejucute cuando el usuario seleccione un item
    }
  }*/
                                 },
								{xtype:'combo',
                                  //id :'idcentral',
                                  	name: 'cod_ciudad2',
                                  	fieldLabel:'Municipio',
                                	allowBlank:false,
                                  	emptyText: 'Seleccione el Municipio...',
                                  	//width:100,
                                  	editable :false,//si deseas que no puedan escribir en le combo, solo seleccionar
                                  	valueField : 'cod_ciudad',//verdadero valor del combo
                                  	displayField : 'nom_ciudad',//valor mostrado al usuario
                                  	hiddenName : 'cod_ciudad',//si deseas enviar a tu archivo php el valor oculto debes configurar esta propiedad, sino te enviara el valor desplegado al usuario
                                  	mode: 'remote',//para que no haga que el store se recargue cada vez que se despliega el combo debemos configurar esta propiedad asi
                                  	triggerAction: 'all',//si no configuras esta propiedad cuando selecciones un valor del listado desaparecerán los demás como una especie de filtro
                                  	store: new Ext.data.JsonStore({//he aqui el store
                                  	url : 'combo_mun_exp.php', //la pagina de la cual tomaras los datos pa cargar
                                  	fields: ['cod_ciudad', 'nom_ciudad'],//campos de mi almacen
                                  	root: 'datos',//este valor nos servirá para tomar los datos que regresemos desde la BD
                                  	id: 'cod_ciudad', //cual de los campos 'fields' será el utilizado como identificador único dentro del store
                                  	autoLoad :true }) },// si deseas que tu combo se cargue apenas se muestre, sino tendrás que hacerlo manualmente
                                  	
                                
				
				
				
									{fieldLabel: 'Email',
                   					 name: 'email',
                   					 vtype:'usuario@tucorreo.com'}]},
			
									{title:'Datos Entidad',
                					layout:'form',
                					defaults: {width: 230},
                					defaultType: 'textfield',
                					items: [      {
                                  	xtype:'combo',
                                  //id :'idcentral',
                                  	name: 'cod_entidad',
                                  	fieldLabel:'Entidad',
                                  	allowBlank:false,
                                  	emptyText: 'Seleccione...',
                                  //width:100,
                                  	editable :false,//si deseas que no puedan escribir en le combo, solo seleccionar
                                  	valueField : 'cod_entidad',//verdadero valor del combo
                                  	displayField : 'nom_entidad',//valor mostrado al usuario
                                  	hiddenName : 'cod_entidad',//si deseas enviar a tu archivo php el valor oculto debes configurar esta propiedad, sino te enviara el valor desplegado al usuario
                                  	mode: 'remote',//para que no haga que el store se recargue cada vez que se despliega el combo debemos configurar esta propiedad asi
                                  	triggerAction: 'all',//si no configuras esta propiedad cuando selecciones un valor del listado desaparecerán los demás como una especie de filtro
                                  	store: new Ext.data.JsonStore({//he aqui el store
                                  	url : 'combo_entidad.php', //la pagina de la cual tomaras los datos pa cargar
                                  	fields: ['cod_entidad', 'nom_entidad'],//campos de mi almacen
                                  	root: 'datos',//este valor nos servirá para tomar los datos que regresemos desde la BD
                                  	id: 'cod_entidad', //cual de los campos 'fields' será el utilizado como identificador único dentro del store
                                  	autoLoad :true // si deseas que tu combo se cargue apenas se muestre, sino tendrás que hacerlo manualmente
                                  	})
  /*listeners : {
  select : function(){
      //qui puedes colocar algo que se ejucute cuando el usuario seleccione un item
    }
  }*/
                                 }]},
									
								{title:'Otros',
                				layout:'form',
                				defaults: {width: 230},
                				defaultType: 'textfield',
                					items: [{xtype:'combo',
                                  //id :'idcentral',
                                  	name: 'id_sexo',
                                  	fieldLabel:'Sexo',
                                  	allowBlank:false,
                                  	emptyText: 'Seleccione el sexo...',
                                  //width:100,
                                  	editable :false,//si deseas que no puedan escribir en le combo, solo seleccionar
                                  	valueField : 'id_sexo',//verdadero valor del combo
                                  	displayField : 'desc_sexo',//valor mostrado al usuario
                                  	hiddenName : 'id_sexo',//si deseas enviar a tu archivo php el valor oculto debes configurar esta propiedad, sino te enviara el valor desplegado al usuario
                                  	mode: 'remote',//para que no haga que el store se recargue cada vez que se despliega el combo debemos configurar esta propiedad asi
                                  	triggerAction: 'all',//si no configuras esta propiedad cuando selecciones un valor del listado desaparecerán los demás como una especie de filtro
                                  	store: new Ext.data.JsonStore({//he aqui el store
                                  	url : 'combo_sexo.php', //la pagina de la cual tomaras los datos pa cargar
                                  	fields: ['id_sexo', 'desc_sexo'],//campos de mi almacen
                                  	root: 'datos',//este valor nos servirá para tomar los datos que regresemos desde la BD
                                  	id: 'id_sexo', //cual de los campos 'fields' será el utilizado como identificador único dentro del store
                                  	autoLoad :true // si deseas que tu combo se cargue apenas se muestre, sino tendrás que hacerlo manualmente
                                  })
                					},
									
									{xtype:'combo',
                                  //id :'idcentral',
                                  	name: 'id_est_civil',
                                  	fieldLabel:'Estado Civil',
                                  	allowBlank:false,
                                  	emptyText: 'Seleccione...',
                                  //width:100,
                                  	editable :false,//si deseas que no puedan escribir en le combo, solo seleccionar
                                  	valueField : 'id_est_civil',//verdadero valor del combo
                                  	displayField : 'est_civil',//valor mostrado al usuario
                                  	hiddenName : 'id_est_civil',//si deseas enviar a tu archivo php el valor oculto debes configurar esta propiedad, sino te enviara el valor desplegado al usuario
                                  	mode: 'remote',//para que no haga que el store se recargue cada vez que se despliega el combo debemos configurar esta propiedad asi
                                  	triggerAction: 'all',//si no configuras esta propiedad cuando selecciones un valor del listado desaparecerán los demás como una especie de filtro
                                  	store: new Ext.data.JsonStore({//he aqui el store
                                  	url : 'combo_est_civ.php', //la pagina de la cual tomaras los datos pa cargar
                                  	fields: ['id_est_civil', 'est_civil'],//campos de mi almacen
                                  	root: 'datos',//este valor nos servirá para tomar los datos que regresemos desde la BD
                                  	id: 'id_est_civil', //cual de los campos 'fields' será el utilizado como identificador único dentro del store
                                  	autoLoad :true // si deseas que tu combo se cargue apenas se muestre, sino tendrás que hacerlo manualmente
                                  	})},
								  
								  {xtype:'datefield',
                                  fieldLabel: 'Fecha Nacimiento',
                                  name: 'fecha_nac',
                                  emptyText:'Insertar fecha...',
                                  format:'Y-m-d',
                                  editable :false,
                                  allowBlank:false},
								  
								  {fieldLabel: 'Nombre Conyuge',
                    			   name: 'nombre_conyuge'},
								   
								  {fieldLabel: 'Telefono Conyuge',
                    			   name: 'telefono_conyuge'}]},
									
									
			{title:'Referencia 1',
             layout:'form',
             defaults: {width: 230},
             defaultType: 'textfield',
                items: [{
                    fieldLabel: 'Nombre',
                    name: 'nom_ref1',
					allowBlank:false
                },
				{
                    fieldLabel: 'Telefono',
                    name: 'tel_ref1',
					allowBlank:false
                },	
				
				{
                    fieldLabel: 'Direccion',
                    name: 'dir_ref1',
					allowBlank:false
                
                },{
                    fieldLabel: 'Parentesco',
                    name: 'paren_ref1',
					allowBlank:false
                }]
            },
			{
                title:'Referencia 2',
                layout:'form',
                defaults: {width: 230},
                defaultType: 'textfield',
                items: [{
                    fieldLabel: 'Nombre',
                    name: 'nom_ref2',
					allowBlank:false
                },
				{
                    fieldLabel: 'Telefono',
                    name: 'tel_ref2',
					allowBlank:false
                },	
				
				{
                    fieldLabel: 'Direccion',
                    name: 'dir_ref2',
					allowBlank:false
                
                },{
                    fieldLabel: 'Parentesco',
                    name: 'paren_ref2',
					allowBlank:false
                }]
            }
			
			]
        }]
		     
		});
		this.win = new Ext.Window({
			id:'mywin',
			title: 'Nuevo Cliente',
			bodyStyle: 'padding:10px;background-color:#fff;',
			width:700,
			maximizable:true,
			items:[this.form],
			buttons: [{text:'Guardar',handler:this.sendData,scope:this},{text:'Limpiar',handler:this.limpiar,scope:this}]
		});
		this.win.show();
	},
		limpiar: function(){
this.form.getForm().reset()
},
sendData: function(){
		//submit the form
		var mask = new Ext.LoadMask(Ext.get('mywin'), {msg:'Guardando. Un momento por favor...'});
		mask.show();
		this.form.getForm().submit({
			method: 'POST',
			params: {
				extraParam: 'enviar'
				},
			success: function(form,action){
				mask.hide();
                                 respuesta = Ext.util.JSON.decode(action.response.responseText);
                                 Ext.MessageBox.show({
                                title : 'ingreso',
                                msg : respuesta.grabado.razon,
                                buttons : Ext.MessageBox.OK,
                                icon : Ext.MessageBox.INFO
                                });
                                form.reset()
			},
			failure: function(form,action){
				mask.hide();
                                if(action.failureType == 'server'){
                                respuesta = Ext.util.JSON.decode(action.response.responseText);
                                Ext.MessageBox.show({
                                title : 'Error',
                                msg : respuesta.errors.razon,
                                buttons : Ext.MessageBox.OK,
                                icon : Ext.MessageBox.ERROR
                                });
                                }
			}
		});
	}
}
Ext.onReady(com.quizzpot.tutorial.SubmitFormTutorial.init,com.quizzpot.tutorial.SubmitFormTutorial);
/*
Ext.onReady(function() {
	Ext.QuickTips.init();
		this.form = new Ext.form.FormPanel({
			//standardSubmit: true, // traditional submit
			url: 'submitform.php',
			border:false,
			labelWidth: 150,
			defaults: {
				xtype:'textfield',
				width: 250
                         
			},
			items:[
                            {
                                xtype:'numberfield',
                                fieldLabel:'Codigo usuario',
                                name:'idusuario',
                                allowBlank:false
                            },
                             {
                                xtype:'spacer',//esto me da espacio entre lineas
                                 width: 250,
                                 height: 15
                            },
				{
                                    fieldLabel:'Nombre',
                                    name:'nombre_usuario',// este es el valor para la programacion
                                     allowBlank:false
                                },
                                {
                                    fieldLabel:'apellido',
                                    name:'apellido_usuario',// este es el valor para la programacion
                                     allowBlank:false
                                },
                                {
                                    xtype:'numberfield',
                                    fieldLabel:'telefono',
                                    name:'telefono',// este es el valor para la programacion
                                     allowBlank:false
                                },
                                {
                                    fieldLabel:'Correo electronico',
                                    name:'correo',
                                    emptyText:'correo@abasto.com',
                                     allowBlank:false
                                },
                                  {
                                xtype:'spacer',//esto me da espacio entre lineas
                                 width: 250,
                                 height: 25
                            },
                                {
                                    xtype:'panel',
                                    title:'Datos Usuario del Sistema',
                                     width: 250,
                                    border:false
                                },
                                 {
                                xtype:'spacer',//esto me da espacio entre lineas
                                 width: 250,
                                 height: 15
                            },
                                 {
                                    fieldLabel:'Usuario',
                                    name:'nick',
                                     allowBlank:false
                                },
                                 {
                                    inputType: 'password',
                                    fieldLabel:'Contraseña',
                                    name:'nick',
                                     allowBlank:false
                                },
                                {
                                    xtype:'combo',
                                    fieldLabel:'Central a administrar',
                                    name:'Central',
                                    allowBlank:false,
                                    editable: false
                                },
                                 {
                                     xtype:'combo',
                                    fieldLabel:'Perfil',
                                    name:'acceso',
                                     allowBlank:false,
                                    editable: false
                                }
                               
                               
			]
		});
		this.win = new Ext.Window({
			id:'mywin',
			title: 'Nuevo Usuario',
			bodyStyle: 'padding:10px;background-color:#fff;',
			width:300,
                        maximized: true,
                        layout:'fit',
                        //mazimizable:true,
			height:270,
			items:[this.form],
			buttons: [
                            {
                                text:'Guardar'
                               
                            },
                            {
                                text:'Cancelar'
                            }
                        ]
		});
		this.win.show();
             
});
0
si tus componentes están dentro de un form no deberías tener problemas, ahora bien , yo no configuro la propiedad "name" del componente me basta con el id, en el caso de los combo uso hiddenId. importante es que uses herramientas como el firebug y el firephp para interceptar donde están tus errores, si en lo que envías o como los capturas al lado del servidor. no dudes en preguntar si estas perdid@

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.