Unidad 19. Formularios - ActionScript (VI)



19.4. Envío de formularios

Vamos a crear el código estándar que nos permite enviar el formulario.

Antes de enviar los datos, hemos validado los datos como vimos en el punto anterior.

Lo normal, tras rellenar un formulario en una página web, es que esta los envíe a una página dinámica, en PHP o ASP. Esta página se encargará de recoger los datos, volverlos a validar, y hacer lo que corresponda con ellos, como guardarlos en una base de datos, o enviar un correo. Con Flash haremos lo mismo. En nuestro ejemplo, enviaremos los datos a enviarCorreo.php.

Vamos a utilizar tres objetos:

  • Un objeto URLVariables. Este objeto nos permite componer cómodamente variables de URL, con el formato var1=valor1&var2=valor2&var3=valor3...
  • Un objeto URLRequest. Nos permite configurar la dirección web de envío, cómo se enviarán los datos y asignarle esos datos con un objeto URLVariables.
  • Un objeto URLLoader. Aunque normalmente lo empleamos para obtener información de archivos, también nos sirve para enviar información al archivo indicado como un URLRequest.

Veamos el código:

//Función que se ejecuta al presionar el botón de envío
function enviarDatos(event:MouseEvent):void {
  System.useCodepage = true;//Esta línea coge la página de carácteres
                            //del sistema, para mostrarlos correctamente
	//Utilizamos un objeto URLVariables para guardar los datos de nuestros campos.
	var datosFormulario:URLVariables = new URLVariables();
	//Definimos los campos y les agregamos el valor de las cajas de texto.
	datosFormulario.nombre = txtNombre.text;
	datosFormulario.apellidos = txtApellidos.text;
	datosFormulario.email = txtEmail.text;

	//Con un obj. URLRequest generamos la URL a la que se envían los datos
	var paginaEnvio:URLRequest=new URLRequest("enviarCorreo.php");
	//Indicamos el método de envío y le cargamos misVariables.
	paginaEnvio.method=URLRequestMethod.POST;
	paginaEnvio.data=misVariables;

	//Utilizamos un obj. URLLoader para enviar info. a un archivo externo
	var cargador:URLLoader = new URLLoader();
	//Como siempre, creamos un evento que nos indica si se ha completado
	//el envío de información, y x tanto se han enviado los datos
	cargador.addEventListener(Event.COMPLETE, envioCompleto);
	//Utilizamos el evneto IOErrorEvent.IO_ERROR que se lanza cuando ocurre
	//un error, por lo que los datos no se han enviado
	cargador.addEventListener( IOErrorEvent.IO_ERROR, errorEnvio );
	//Y para acabar, enviamos los datos
	caragdor.load(paginaEnvio);
}
function envioCompleto(event):void {
	//Si se completa, avisamos del envío y limpiamos campos
	aviso.text="Envío completo";
	txtNombre.text="";
	txtApellidos.text="";
	txtEmail.text="";
}
function errorEnvio(event):void {
	//Si hay un error, avisamos de ello
	aviso.text="Se produjo un error, no se ha completado el envío";
}


btn_enviar.addEventListener(MouseEvent.CLICK, validaryEnviar);
function validaryEnviar(event):void {
	if (validarDatos()) { //validamos
		enviarDatos(); //Y si es True, enviamos
	}
}

Podemos ver que para crear las variables en el objeto URLVariables, no tenemos más que escribir el nombre que le queremos dar como una propiedad, y asignarle el valor que queremos guardar en la variable:

 datosFormulario.nombre = txtNombre.text;
 datosFormulario.apellidos = txtApellidos.text;
 datosFormulario.email = txtEmail.text;

Al objeto URLRequest, le indicamos el nombre de archivo (nuestra página), el método de envío (method), como en los formularios HTML, y los datos (data) que hemos configurado en el objeto URLVariables.

	var paginaEnvio:URLRequest=new URLRequest("enviarCorreo.php");
	paginaEnvio.method=URLRequestMethod.POST;
	paginaEnvio.data=misVariables; 

Y por último utilizamos el objeto URLLoader para comunicarnos con el archivo cuya ubicación se indica en el objeto URLRequest. Cargamos la información hacia él, y comprobamos si se ha completado el envío o se ha producido un error, para avisar al usuario.

El script enviarCorreo.php se encargaría de recibir los datos, generar el correo y enviarlo.

Nota: Para poder ejecutar una página dinámica, como la que envía el correo en PHP, hay que tener instalado un servidor web en el equipo. Por lo que si no lo tienes, no se enviará el correo, aunque tampoco dará ningún error si se encuentra el archivo.




Marzo-2011
Pág. 19.6

Atrás  Inicio  Adelante







.