Página inicial

Unidad 20. ActionScript - Formularios (III).


Envío de formularios

 

A partir de ahora veremos cómo afrontar el envío y la recepción de datos con formularios.

Lo haremos a través de este ejemplo, donde encontraremos elementos de entrada (en los que tendremos que escribir datos para enviarlos) y de salida (donde tendremos que recoger datos de un archivo externo para mostrarlo).

El envío de datos de formulario lo realizaremos utilizando el objeto LoadVars que ya hemos visto. Pero en este caso, en vez de recabar información, lo usaremos para enviarla.

Su uso es el siguiente:

var escuchadorEnvia:Object = new Object();

escuchadorEnvia.click = function(evt:Object) {

	var envio:LoadVars = new LoadVars();

	

	// rellenamos las variables

	envio.autor = nombre_txt.text;

	envio.email = mail_txt.text;

	envio.mensaje = mensaje_txt.text;

	

	envio.onLoad = function(exito:Boolean) {

		if (exito) {

			nombre_txt.text = "";

			mail_txt.text = "";

			mensaje_txt.text = "";

		}

		else {

			Alert.show("Ha habido un error en el envío");

		}

	}

	

	// enviamos las variables al archivo PHP

	envio.sendAndLoad("enviar_comentario.php", envio, "POST");

}

submit_btn.addEventListener("click", escuchadorEnvia);

Hemos definido un escuchador que se ejecutará cuando se pulse el botón de enviar.

 

Dentro del código de éste hemos declarado un objeto LoadVars llamado envio.

Almacenar las variables en el objeto es tan fácil como escribir lo siguiente:

envio.autor = nombre_txt.text;

envio.email = mail_txt.text;

envio.mensaje = mensaje_txt.text;

Y sólo quedaría enviarlo con el método send.

envio.send("enviar_comentario.php", "_blank", "POST");

Esta función envía las variables almacenadas en LoadVars utilizando el método especificado en el tercer parámetro (puede ser POST o GET).

Si quieres que el script que se ejecuta se abra en una ventana deberás indicarlo en el segundo parámetro.

Estas dos últimas funciones son opcionales y podríamos escribir solamente:

envio.send("enviar_comentario.php");

 

En el ejemplo no hemos utilizado el método send, sino el método sendAndLoad.

envio.sendAndLoad("enviar_comentario.php", envio, "POST");

De este modo podemos añadir un controlador onLoad para evaluar si el envío se realizó correctamente. En el segundo parámetro deberemos indicar cuál será el objeto que se cargará (en nuestro caso el mismo objeto envio).

Por lo que además de realizar el envío hemos añadido las líneas:

envio.onLoad = function(exito:Boolean) {

	if (exito) {

		nombre_txt.text = "";

		mail_txt.text = "";

		mensaje_txt.text = "";

	}

	else {

		Alert.show("Ha habido un error en el envío");

	}

}

Que vacía los campos si la carga del script se realizó correctamente o muestra una alerta en caso contrario.

 

Nosotros en el ejemplo hemos añadido algunos validadores para asegurar que todos los campos se han rellenado. Así, antes de declarar el objeto LoadVars hemos introducido unas cuantas condiciones del tipo:

if (nombre_txt.text.length == 0) {

	Alert.show("Introduce tu nombre", "Error", Alert.OK);

	return false;

}

Donde se evalúa la longitud del texto del campo nombre. Si llega a la línea return false; se saldrá de la función y no llegará a enviar los datos.

 

El script enviar_comentario.php se encargaría de recibir los datos, tratarlos y luego almacenarlos o enviarlos por correo.

Nosotros hemos almacenado la opción en un archivo XML desde donde recuperaremos la información cada cierto tiempo utilizando un bucle en la línea de tiempo.



 


© aulaClic. Todos los derechos reservados. Free Computer tutorials. Prohibida la reproducción por cualquier medio.
Septiembre - 2007.