Ver Mensaje Individual
  #9 (permalink)  
Antiguo 28/07/2009, 08:46
Avatar de gVenom
gVenom
 
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 15 años, 9 meses
Puntos: 53
Mensaje Respuesta: Ayuda Formulario Correo Flash + PHP

Primero trabajaremos el Fla:
Creamos
una nueva película, sobre el escenario creamos 4 campos de texto de
entrada InputText y les damos nombre de instancia, y creamos 2 botones "enviar_btn" y "borrar_btn"
Crearemos
2 funciones una para enviar las variables a PHP y otra función para
borrar los datos del formulario

Función enviar:

Código AS:
Ver original
  1. enviar = function () {
  2.     if (email_txt.text.length && name_txt.length && phone_txt.length && msj_txt.length) {
  3.         if (email_txt.text.indexOf("@") != -1 && email_txt.text.indexOf(".") != -1) {
  4.             form_lv = new LoadVars();
  5.             form_lv.name = name_txt.text;
  6.             form_lv.address = address_txt.text;
  7.             form_lv.city = city_txt.text;
  8.             form_lv.phone = phone_txt.text;
  9.             form_lv.email = email_txt.text;
  10.             form_lv.msj = msj_txt.text;
  11.            
  12.             form_lv.sendAndLoad("http://blessingwave.org/send.php", form_lv, "POST");
  13.             msj_txt.text = "Sending Message..";
  14.             name_txt.text = "";
  15.             address_txt.text = "";
  16.             city_txt.text = "";
  17.             phone_txt.text = "";
  18.             email_txt.text = "";
  19.             form_lv.onLoad = function() {
  20.                 if (this.estatus == "ok") {
  21.                     msj_txt.text = "Your message has been sent successfully...";
  22.                     name_txt.text = "";
  23.                     address_txt.text = "";
  24.                     city_txt.text = "";
  25.                     phone_txt.text = "";
  26.                     email_txt.text = "";
  27.                 } else {
  28.                     msj_txt.text = "There was a problem sending your email, please try again";
  29.                 }
  30.             };
  31.         } else {
  32.             email_txt.text = "Email Invalid";
  33.         }
  34.     } else {
  35.         email_txt.text = "Data Needed";
  36.         name_txt.text = "Data Needed";
  37.         address_txt.text = "Data Needed";
  38.         city_txt.text = "Data Needed";
  39.         phone_txt.text = "Data Needed";
  40.         msj_txt.text = "Data Needed";
  41.     }
  42. };


Código as:
Ver original
  1. if (email_txt.text.length && nombre_txt.length && titulo_txt.length && mensaje_txt.length)

Con esto comprobamos que al presionar el boton todos los campos de texto no
estén vacíos, si esta condición no se cumple en los campos
aparecerá el texto "Dato Necesario";

Código as:
Ver original
  1. if (email_txt.text.indexOf("@") != -1 && email_txt.text.indexOf(".") != -1) {

Esta comprobación revisa que el mail introducido tenga la @ y
un punto .;
Si ambas condiciones son ciertas creamos una instancia de la clase LoadVars
y asignamos variables para enviar a PHP


Código as:
Ver original
  1. form_lv_lv = new LoadVars();
  2. form_lv.nombre = nombre_txt.text;
  3. form_lv.mail = email_txt.text;
  4. form_lv.mensaje = mensaje_txt.text;
  5. form_lv.titulo = titulo_txt.text;
  6. form_lv.sendAndLoad("send.php", form_lv, "POST");
  7.     mensaje_txt.text = "Enviando Mensaje..";
  8. }

Una vez ejecutado el Script PHP y si todo salio bien, este, regresara una variable
llamada status que tomaremos con el evento onLoad

Código as:
Ver original
  1. form_lv.onLoad = function() {
  2.                 if (this.estatus == "ok") {
  3.                     mensaje_txt.text = "Tu mensaje fue enviado. nGracias.... =)";
  4.                     nombre_txt.text = " ";
  5.                     email_txt.text = " ";
  6.                     titulo_txt.text = " ";
  7.                 } else {
  8.                     mensaje_txt.text = "Problemas con el servidornIntentalo de Nuevo";
  9.                 }
  10.             };

Función borrar:
Con esta función solo borraremos los datos que tengan los campos de texto.

Código as:
Ver original
  1. borrar = function () {
  2.     nombre_txt.text = " ";
  3.     email_txt.text = " ";
  4.     mensaje_txt.text = " ";
  5.     titulo_txt.text = " ";
  6. };
Esto no necesita mucha explicación =P
Por ultimo asignamos dichas funciones a los eventos de los botones
Código as:
Ver original
  1. enviar_btn.onRelease = enviar;
  2.   borrar_btn.onRelease = borrar;

esto si los botones y los input text están en el mismo nivel, pero si los botones están por ejm dentro de un mc (por motivo de animación) entonces el botón de borrar iria así:

Código as:
Ver original
  1. on (release) {
  2.     _parent.name_txt.text = "";
  3.     _parent.address_txt.text = "";
  4.     _parent.city_txt.text = "";
  5.     _parent.phone_txt.text = "";
  6.     _parent.email_txt.text = "";
  7.     _parent.msj_txt.text = "";
  8. }

Y el de envio así:

Código as:
Ver original
  1. on (release){
  2.     _parent.enviar();
  3. }
Esto aplicando el código directamente a los botones.

Seguimos con el PHP..
Código PHP:
<?php 
if(isset($_POST["name"]) && isset($_POST["phone"]) && isset($_POST["email"]) && isset($_POST["msj"]) ){ 
            
$fecha date("d-M-y H:i"); 
            
$mymail "[email protected]"
            
$subject "Formulario de contacto"
            
$contenido "name: ".$_POST["name"]."\nDireccion: "
            
$contenido .= $_POST["address"]."\nCiudad: "
            
$contenido .= $_POST["city"]."\nTelefono: "
            
$contenido .= $_POST["phone"]."\nMensaje: "
            
$contenido .= $_POST["msj"]."\n\n"
            
$contenido .= "el mensaje se escribio el ".$fecha
            
$header "From:".$_POST["name"]."<".$_POST["email"].">"."\nReply-To:".$_POST["email"]."\n"
            
$header .= "X-Mailer:PHP/".phpversion()."\n"
            
$header .= "Mime-Version: 1.0\n"
            
$header .= "Content-Type: text/plain"
            
mail($mymail$subjectutf8_decode($contenido) ,$header); 
            echo 
"&estatus=ok&"

?>
La función isset verifica que una variable exista, en este caso verificamos
que las cuatro variables existan antes de enviar el mail.
Los parámetros de la función mail de PHP son:
• Para: Correo destino. En este caso $mymail
• Titulo: Titulo del Correo. En este caso $subject
• Mensaje: Cuerpo del correo. En este caso $contenido
• Headers o cabeceras: Son las cabeceras del correo, donde se especifica
el tipo de contenido (texto plano, texto HTML), entre muchas otras opciones
que no mencionare.
Una vez enviado el mail el PHP regresa la variable status que Flash interpretara…
Si dicha variable existe es que todo funcióno… =)

Espero te sirva
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr