
Existen muchas formas de crear formularios para nuestras paginas web, ya sea con javascript, php incluso con html. En este post explicaré como lograrlo con Adobe Flash (Cualquier versión a partir de CS3) y actionscript 3.0
Además es la actualización de uno de mis foros anteriores que hacia los mismo: enviar los resultados de un formulario pero en este caso utilizaremos actionScript 3.0, (osea estamos migrando la version)
Básicamente utilizaremos:
- URLRequestMethod
- Algunos if
- Un pequeño y simple archivito php
Para lograrlo haremos lo siguiente:
1- Cree un nuevo documento de Flash ActonScript 3.0
2- Cree cuatro cuadros de texto de tipo input (Entrada) y asigne al primero el nombre de intancia: txtNombre, al segundo txtApellidos , al tercero txtEmail y al cuarto txtComentario
3- Cree dos cuadros de texto de tipo dinámico y asigne al primero el nombre de instancia lbRespuesta y al segundo lbError
4- Cree un símbolo tipo botón con el nombre de instancia btEnviar
5- Cree una nueva capa asigne a esta nueva capa el nombre “acciones” y en el primer fotograma escriba el siguiente código (Está explicado)
//Función que se ejecuta al presionar el botón btEnviar.
function irAEnviar(event:MouseEvent):void { //Creamos misVariables la cual contendrá nuestros campos.
var misVariables:URLVariables = new URLVariables(); //Definimos los campos y les agregamos el valor de las cajas de texto.
misVariables.nombre = txtNombre.text; misVariables.apellidos = txtApellidos.text; misVariables.email = txtEmail.text; misVariables.comentario = txtComentario.text;
/*El siguiente if filtrará que el mensaje no se entregue si en la casilla cometario no hay nada escrito y solo seguirá hasta que se cumpla dicha condición*/
if(txtComentario.text.length<1){ lbError.text="Por favor introduce tu comentario"; //El else reanuda la ejecución del programa una vez este escrito el comentario
}else{
lbError.text=" ";//Limpia la caja de texto lbError
//Creamos la instancia pedido que contendrá los datos de envío.
var pedido:URLRequest = new URLRequest();
//Pasamos los datos al pedido, el método de envío y le cargamos misVariables.
pedido.url = "http://www.tuDominio.com/correo/enviarCorreo.php";
pedido.method = URLRequestMethod.POST;
pedido.data = misVariables; //Creamos la instancia cargador.
var cargador:URLLoader = new URLLoader(); //Damos formato de Variables a cargador .
cargador.dataFormat = URLLoaderDataFormat.VARIABLES; //Listener de cargador que espera se COMPLETE la carga para ejecutar la función completeHandler.
cargador.addEventListener(Event.COMPLETE, completeHandler);
//intentamos cargar el pedido y si hay algún error lo detectamos
try { cargador.load(pedido);
}
catch (error:Error) {
lbError.text= "Error en el envío"; } //Aquí obtenemos la respuesta del PHP para confirmar en flash que todo salió bien o mal.
function completeHandler(event:Event):void {
lbRespuesta.text=event.target.data.respuestaPHP;
}
}
//Listener que está esperando el Click en el btEnviar para ejecutar la función irAEnviar
btEnviar.addEventListener(MouseEvent.CLICK, irAEnviar);
6- En este momento nuestra aplicación esta lista, pero necesitamos construir el archivo php que tramitará el envío por medio de este servicio en el servidor, hagamos lo siguiente:
a- Abra el bloc de notas
b- Escriba el siguiente script:
<?php $nombre=$_POST["nombre"]; $apellidos=$_POST["apellidos"]; $mail=$_POST["email"]; $comentario=$_POST["comentario"];
$message = 'Nombre: '.$nombre.'<br>
E-Mail: '.$mail.'<br>Teléfono: '.$apellidos.'.<br>
Escribió el siguiente comentario: '.$comentario; $charset=utf-8; $headers="From: ".$nombre."n" ."Content-type: text/html; charset=UTF-8n" . "MIME-Version: 1.0n" . "Content-Transfer-Encoding: 8bitn" . "X-Mailer: PHPn"; $subject = "forma de contacto" ;
mail("sucorreo@servidor", $subject, $message, $headers); echo "respuestaPHP=Mensaje enviado"; ?>
Tengan en cuenta que en la línea marcada de rojo deben poner un correo válido al cual ustedes tengan acceso para comprobar el correcto funcionamiento de la aplicación
c- Guarde el archivo con el nombre enviarCorreo.php
8- Ahora lo que nos queda es subir este archivo a un servidor web con soporte para PHP, recomiendo que abran una cuenta en algún servidor gratuito que tenga soporte para php. Por ejemplo: www.000webhost.com
Archivos del tutorial
Con una pequeña modificación pueden lograr también enviar los resultados del formulario que expliqué en mi post anterior:
Bastaría con agregar un botón de envío en el tercer fotograma, agregar el script anterior y el identificador de la caja de texto:
misVariables.nombre = resultado.text;
y en el php agregar:
$resultado=$_POST["resultado"];
$message = 'Nombre: '.$nombre.'<br>E-Mail: '.$mail.' '.$apellidos.'.<br>Obtuvo el siguiente resultado: '.$resultado;
Y sería suficiente para completar la aplicación en línea.
Si gustan pueden visitar mis otros artículos en taringa sobre actionScript:
Un par más pero en actionscript 2 (Muy útiles si nos gusta el camino mas simple y funcionan igual!)