Foro

No se envían datos al servidor

0
Hola.. soy muy nueva en el trabajo con Ext JS y estoy aprendiendo guiandome por los ejemplos que vienen en el sitio... Intente hacer un ejemplo para enviar datos al servidor y usando el debbuger del firefox me salio un error de sintaxis en la función datos <!-- s:( --><!-- s:( --> ... probe muchas cosas y nada.., aqui les pongo el código de mi página .js a ver si me pueden ayudar a encontrar cual es el problema... gracias de antemano... Ext.onReady(function(){ this.form= new Ext.FormPanel({ defaults:{xtype:'textfield'}, //componente por defecto del formulario bodyStyle:'padding: 10px', items:[name,ape,edad], //width:250, border:false, url:'InsertarEst.php' }); var win = new Ext.Window({ title: 'Insertar Estudiante', width:300, height:160, items:[this.form], //le asignamos el formulario solamente buttonAlign: 'right', //botones alineados a la derecha buttons:[{text:'Salvar',handler:this.datos,scope:this},{text:'Cancelar'}] //botones del formulario }); win.show(); datos:function(){ this.form.getForm().submit({ method:'POST', success: function(form,action){ Ext.Msg.alert('Success',action.result.msg); }, failure: function(form,action){ switch (action.failureType) {case Ext.form.Action.CLIENT_INVALID: Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values'); break; case Ext.form.Action.CONNECT_FAILURE: Ext.Msg.alert('Failure', 'Ajax communication failed'); break; case Ext.form.Action.SERVER_INVALID: Ext.Msg.alert('Failure', action.result.msg); break; default: Ext.Msg.alert('Failure',action.result.msg); } } }) } }); var name = new Ext.form.TextField({ fieldLabel:'Nombre', name:'txt_nombre', id:"id_nombre" }); var ape = new Ext.form.TextField({ fieldLabel:'Apellido', name:'txt_ape', id:"id_ape" }); var edad = new Ext.form.TextField({ fieldLabel:'Edad', name:'txt_edad', id:"id_edad" });
0
Hola. Tambien soy nuevo en Ext. He tenido algunos inconvenientes similares y talvez podamos ayudarnos mutuamente. Podrias mostrar el codigo de tu archivo php?.Que servidor usas? Envias los datos a una Base de datos?. Saludos
0
Hola..., el codigo de mi .php es este: <?php include('Conexion.php'); $var=new Acceso_Datos("localhost","root","","BDEjemplo"); //$_POST=array(); $nombre = $_POST['id_nombre']; $apellido = $_POST['id_ape']; $edad= $_POST['id_edad']; $var->InsertarEstudiante($nombre,$apellido,$edad); //return json_encode($var); ?> y bueno, el de la conexion es este: <?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ class Acceso_Datos { var $host; var $user; var $pass; var $db; var $mysqli; function __construct($host_,$user_,$pass_,$db_) { $this->host= $host_; $this->user=$user_; $this->pass=$pass_; $this->db=$db_; $this->mysqli= new mysqli($this->host, $this->user,$this->pass , $this->db); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } } function InsertarEstudiante($nombre,$apellido,$edad){ $query ="insert into Estudiante (Nombre,Apellido,Edad) values ('$nombre','$apellido','$edad')"; $value=$this->mysqli->query($query); if($this->mysqli->error) { printf("Query failed: %s\n", $this->mysqli->error); exit(); } return $this->mysqli->insert_id; } function MostrarEstudiante() { $query="select * from Estudiante"; $result = $this->mysqli->query($query); if (@mysqli_num_rows ($result)>0) { while($row= @mysqli_fetch_assoc($result)) $this->arr[] = $row; } else { /* printf("Query failed: %s\n", $this->mysqli->error); exit(); */ $this->arr[] =""; } echo '{rows:'.json_encode($this->arr).'}'; } } ?> El servidor que estoy usando es XAMPP..., y utilice una pequenna base de datos en el phpMyadmin para probar estas cosas.... tienes idea de cual puede ser el error que me está dando?????..
0
Olvide preguntarte si cuando corrias tu pagina veias algo o solo el error del firebug. syntax error <!-- m -->http://192.168.34.120/recipes/js/foro.js<!-- m --> Line ...
0
Si solo ves el error del firebug creo que tu problema esta en la estructura de tu archivo.js. recien estoy comenzando con ExtJs, si cometo algun error, criticas son escuchadas. Te recomiendo leer los tutoriales de Crysfel (son excelentes), a mi me han servido muchisimo, principalmente el tema de la [b]palabra reservada this[/b] (<!-- m -->http://www.quizzpot.com/2009/03/el-cont ... able-this/<!-- m -->), [b]paquetes y namespace[/b] (<!-- m -->http://www.quizzpot.com/2009/03/paquetes-y-namespace/<!-- m -->) y sobre todo [b]Guardar información en el servidor [/b](<!-- m -->http://www.quizzpot.com/2009/08/guardar ... -servidor/<!-- m -->). He modificado tu codigo y ya puedo ver el formulario.
Ext.ns('javier');//AQUI EL NOMBRE QUE TU QUIERAS
javier.SubmitFormTutorial = {
	init:function(){
		var name = new Ext.form.TextField({
		fieldLabel:'Nombre',
		name:'txt_nombre',
		id:"id_nombre"
		});
		var ape = new Ext.form.TextField({
		fieldLabel:'Apellido',
		name:'txt_ape',
		id:"id_ape"
		});
		var edad = new Ext.form.TextField({
		fieldLabel:'Edad',
		name:'txt_edad',
		id:"id_edad"
		});
		
		this.form= new Ext.FormPanel({
			defaults:{xtype:'textfield'}, //componente por defecto del formulario
			bodyStyle:'padding: 10px',
			items:[name,ape,edad],
			//width:250,
			border:false,
			url:'InsertarEst.php'
		});
		this.win = new Ext.Window({
			title: 'Insertar Estudiante',
			width:300,
			height:160,
			items:[this.form], //le asignamos el formulario solamente
			buttonAlign: 'right', //botones alineados a la derecha
			buttons:[{text:'Salvar',handler:this.datos,scope:this},{text:'Cancelar'}] //botones del formulario
		});
		this.win.show();
	},
	datos:function(){
	this.form.getForm().submit({
		method:'POST',
		success: function(form,action){
			Ext.Msg.alert('Success',action.result.msg);
		},
		failure: function(form,action){
			switch (action.failureType)
				{case Ext.form.Action.CLIENT_INVALID:
					Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values');
						break;
				case Ext.form.Action.CONNECT_FAILURE:
					Ext.Msg.alert('Failure', 'Ajax communication failed');
						break;
				case Ext.form.Action.SERVER_INVALID:
					Ext.Msg.alert('Failure', action.result.msg);
						break;
				default:
					Ext.Msg.alert('Failure',action.result.msg);
				}
			}
		})
	}
}
Ext.onReady(javier.SubmitFormTutorial.init,javier.SubmitFormTutorial);
Saludos.
0
muchisimas graciasssssssssssss..., lo probe y funciono..., pero tuve que cambiarle una cosita porque me daba error.. era esto: Ext.Msg.alert('Success',action.result.msg);..., quite el action.result.msg y puse esto:('Success','Datos enviados satisfactoriamente') y funciono bien..., lo otro es si puedes explicarme por que pusiste esto: Ext.ns('javier');//AQUI EL NOMBRE QUE TU QUIERAS javier.SubmitFormTutorial = {... } Ext.onReady(javier.SubmitFormTutorial.init,javier.SubmitFormTutorial); Siempre que vaya a enviar datos lo tengo que poner asi?????....
0
Me alegro que te sirviera!! El nombre que le das dentro de los parentesis es a tu eleccion. Es el nombre que le das a tu paquete de datos. Ext.namespace('......'); o bien Ext.ns('.....') como dice el [b]Gran Crysfel[/b] es la manera de evitar declarar las variables en el "global scope". No es solo cuando quieras enviar datos, es solo una buena practica a tener en cuenta. Saludos.
0
Si te ha servido y pudiste solucionarlo, no olvides cerrar el post editando el titulo poniendo una [R] delante.
0
y siempre que quiera enviar datos tengo que poner: (nombre).SubmitFormTutorial =...?????
0
Muchisimas graciassssssssssssssss nuevamente...... seguire estudiando y siempre que te pueda ayudar te escribire.... suerte!!!!!!
0
Podria haber sido asi Ext.ns('tu-name-space'); tu-name-space.SubmitForm = { init:function(){ ..... Ext.onReady(tu-name-space.SubmitForm.init,tu-name-space.SubmitForm);

¿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.