Foros del Web » Creando para Internet » Flash y Actionscript »

como funciona un formulario en flash??

Estas en el tema de como funciona un formulario en flash?? en el foro de Flash y Actionscript en Foros del Web. Buenas, espero que esta pregunta sea simple para los expertos. Ahi va: Tengo una web completamente en flash (no la hice yo, el cliente ya ...
  #1 (permalink)  
Antiguo 06/03/2009, 05:33
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 10 años, 11 meses
Puntos: 1
Pregunta como funciona un formulario en flash??

Buenas, espero que esta pregunta sea simple para los expertos.
Ahi va: Tengo una web completamente en flash (no la hice yo, el cliente ya la tenia hecha) y me pidieron validar los campos del formulario.
Ahora, yo hice esto una vez con una página html y necesité crear un php (soy diseñadora, no programadora por eso quizá pregunte pavadas...), esto quedó perfecto.lo que quisiera saber es si en este caso que el form (y toda la web) está en flash se hace de la misma manera.
Mirando los archivos de esta web veo que hay varios archivos php (email.php, sendmail.php, shform.php) Además del swf que contiene el form propiamente dicho donde tb vi acciones que determinaban el mail de destino, etc...
En definitiva, estoy mareada! no entiendo porqué hay tantos archivos, no se si es necesario que estén todos linkeados entre si.
Qué se necesita realmente para que un form. en flash funcione y esté validado?
Se validan los campos en el mismo swf o necesito crear un php?
hace 2 días que estoy googleando para encontrar una solución, pero explican el tema desde cero y como yo tengo que partir de algo ya hecho es ahi donde se me complica.
Espero que puedan ayudarme en esto, mil gracias!!
  #2 (permalink)  
Antiguo 06/03/2009, 06:42
Avatar de sirguy  
Fecha de Ingreso: septiembre-2006
Ubicación: Mallorca
Mensajes: 959
Antigüedad: 11 años, 2 meses
Puntos: 12
Respuesta: como funciona un formulario en flash??

En realidad es más sencillo de lo que parece, con un par de tutoriales el tema se saca. Lo primero es comprender el tema de loadvars, este tutorial lo explica bien:

http://www.cristalab.com/tutoriales/...-loadvars-c7l/

Vamos a ver el tema de el envío, luego ya validaremos. Nosotros enviamos unas variables a un archivo, éste será php, asp,... yo uso php. Por qué enviarlos a un php? Porque si no los los valores de los campos del formulario se van a limbo (a ningún lado). El php coge esos valores y los envía al mail especificado:

//Declaro las variables para enviar y para recibir
var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();
//Función que envia el forumlario
function enviarMail() {
envio_lv.asunto = asunto_txt.text;
envio_lv.email = email_txt.text;
envio_lv.cuerpo = cuerpo_txt.text;
envio_lv.sendAndLoad("email.php", recibir_lv, "POST");
//Aqui ustedes pueden cambiar de form.php a form.asp dependiendo del servidor
//que usen
}
//Función que procesa los datos recibidos del servidor
recibir_lv.onLoad = function(exito) {
if (exito) {
estado_txt.text = this.estado;
} else {
//Muestra un mensaje de error en negrita
estado_txt.text = "Error en la aplicación de correo";
}
};

En este caso el form cuenta con tres campos: asunto, correo y comentarios (asunto,email,cuerpo), por ejemplo:envio_lv.asunto = asunto_txt.text;

Declaras las variables con un nombre: envio_lv.
El php recibirá dicha variable con un nombre: asunto.
El valor es el valor del texto cuyo n. de instancia es asunto_txt

Esto sirve para cada uno de los campos.

Si lees el código un par de veces verás que no es difícil, auqnue seas diseñadora.

Ahora vamos al php:

Código PHP:
<?php
    $sendTo 
"[email protected]";
    
$subject $_POST["asunto"];
    
$headers "From: " "El nombre de la empresa";
    
$headers .= "<" $_POST["email"] . ">\r\n";
    
$headers .= "Reply-To: " $_POST["email"]; 
    
$message $_POST["cuerpo"];
    
mail($sendTo$subject$message$headers);
    echo 
"estado=Mensaje enviado :D";
?>
Poner $algo, en php es el nombre de la variable, le pone sendto,subject,... porque es adecuado para este caso. Lo que viene después no se puede cambiar:

$_POST["asunto"];

¿te acuerdas antes que hemos llamado asunto a la variable? (envio_lv.asunto...) Pues esto recoge ese valor, lo mismo para el correo al que responder y el cuerpo.

Variables como $sendto (que se podría llamar $enviara...o como queramos) las definimos aquí a mano puesto que las ponemos nosotros y no vienen desde el formulario. Lo mismo para el origen, que viene desde el formulario de la empresa.

Si quieres más campos los añades en el flash, por ejemplo:envio_lv.edad=edad_txt.text

Y los recibes en el php:

$edadcliente=$_POST["edad"]. Eso sí los tendrás que añadir en el mensaje de esta manera, jugando un poco con html y php:

$message = $_POST["cuerpo"]."<br>Edad:".$edadcliente;

Fiíjate que lo empalmas con puntos en lugar del signo + ("formato html".$variableenphp."mas html".$otravariablephp."<br>Salto de líea con html").

De esta manera puedes meter de todo en el mensaje.

Por último nos queda enviar el mensaje, usando la función mail():
mail($sendTo, $subject, $message, $headers);

Esto envía todo al correo especificado.

echo "estado=Mensaje enviado :D";

Esta línea envía una variable al flash con valor estado:

recibir_lv.onLoad = function(exito) {
if (exito) {
estado_txt.text = this.estado;
}

Esta variable se recibe y pasa el valor al campo de texto.

Esto es relativamente sencillo. En cuanto a validar este tutorial te ayudará mucho:

www.tutoriales-flash.com/tutorial.asp?id_tuto=21, olvida un poco todo y céntrate a partir de esta línea:

// función para validar el email ------------------------------------------
...

Te muestra un poco como validar, en tu caso debes usar en lugar de arg el nombre de instancia de tus campos:

if (asunto_txt.text== "" || asunto_txt.text == null || asunto_txt.text == "null" || asunto_txt.text == undefined || asunto_txt.text == "undefined") {...

En lugar de hacer un trace envías el valor a estado_txt para notificar el fallo. Si está todo bien hace un return true, pues ahí llamas a la función del primer tutorial:

return true;
enviarMail();

Una cosa piensa que el botón del primer ejemplo llama directamente enviarmail(), debes cambiarlo por el nombre de la función de validación que no es como en el segundo tutorial, sería algo así:

function validar(){
if (arg == "" || arg == null || arg == "null" || arg == undefined || arg == "undefined") {
return false;
// trace("cadena vacía");
// compruebo si hay una arroba y solo una
} else if (arg.indexOf("@") == -1 || arg.indexOf("@") != arg.lastIndexOf("@")) {
return false;
...
return true;
enviarmail()
}

En el botón de enviar:

on (release) {
validar();
}


A grandes rasgos es esto. Quizá debas especificar más las dudas.


Un saludo
__________________
Chanante!
  #3 (permalink)  
Antiguo 06/03/2009, 12:56
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 10 años, 11 meses
Puntos: 1
De acuerdo Respuesta: como funciona un formulario en flash??

sirguy, antes que nada quiero darte las gracias por haberte tomado el tiempo de escribir toda esa explicación, código incluido, de verdad, gracias!
Ahora las preguntas...
Si no entiendo mal, lo que sigue va en el fla, no?

//Declaro las variables para enviar y para recibir
var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();
//Función que envia el forumlario
function enviarMail() {
envio_lv.asunto = asunto_txt.text;
envio_lv.email = email_txt.text;
envio_lv.cuerpo = cuerpo_txt.text;
envio_lv.sendAndLoad("email.php", recibir_lv, "POST");
//Aqui ustedes pueden cambiar de form.php a form.asp dependiendo del servidor
//que usen
}
//Función que procesa los datos recibidos del servidor
recibir_lv.onLoad = function(exito) {
if (exito) {
estado_txt.text = this.estado;
} else {
//Muestra un mensaje de error en negrita
estado_txt.text = "Error en la aplicación de correo";
}
};


Ahora, en qué fotograma va?
Esto lo pongo en el panel de acciones no?
tengo que seleccionar el botón de ENVIAR y abrir ahi el panel de acciones para copiar este código?
Una más, cuales son exactamente las variables que yo tengo que cambiar? es decir las que se modifican en cada caso (si pudieras ponerlas en un color diferente me ayudarías mucho).

Luego aparece el código php, es decir creo un archivo con extensión php, y lo llamo email.php?

Hasta acá tengo estas dudas, lo de la validación lo estoy viendo tb pero me interesa mucho entender esta primera parte antes.
Nuevamente gracias por tu tiempo!!!
  #4 (permalink)  
Antiguo 09/03/2009, 02:19
Avatar de sirguy  
Fecha de Ingreso: septiembre-2006
Ubicación: Mallorca
Mensajes: 959
Antigüedad: 11 años, 2 meses
Puntos: 12
Respuesta: como funciona un formulario en flash??

Buenooo, estamos muy verdes. Lo primero es no ahogarse con el código. Sí lo primero es flash, las variables que se declaran son las de envío, también las recibidads:

var envio_lv:LoadVars = new LoadVars();
var recibir_lv:LoadVars = new LoadVars();

Tú sólo quieres cambiar las de envío, las envio_lv:

envio_lv.asunto = asunto_txt.text;
envio_lv.email = email_txt.text;
envio_lv.cuerpo = cuerpo_txt.text;

Donde asunto,email y cuerpo son los nombres de los campos enviados:envio_lv.cuerpo = cuerpo_txt.text;

email_txt.text; es el valor del texto del campo email (nombre de instancia email).

Este código se pone en el frame donde esté el botón y se envía a email.php:

envio_lv.sendAndLoad("email.php", recibir_lv, "POST");


Cristalab te permite bajar todo montado por si lo quieres probar e ir modificando cosas poco a poco. Como ya te he dicho léete el código e intenta entender aunque sean un par de cosas, te juro que es más sencillo de lo que parece.

Un saludo
__________________
Chanante!
  #5 (permalink)  
Antiguo 11/03/2009, 13:14
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 10 años, 11 meses
Puntos: 1
Respuesta: como funciona un formulario en flash??

Sirgury, si no te respondí antes, creeme que es porque estoy tratando de entender el código lo mejor posible, y algo voy entendiendo.
Creo que avancé bastante con tus explicaciones.
Ahora, logré que al ingresar texto en los campos del form y presionar el botón de RESET se borre todo el texto ingresado.

Pero me pasan vs. cosas, te cuento:

1) Cuando abro el swf, los campos ya aparecen con texto dentro (que no se de donde sale)...

2) puedo borrar ese texto como te decia antes, pero luego tipeo nuevamente algo y presiono SEND y no pasa nada!!

El tema es que no se si puse el código exactamente donde va, para mi ahi debe estar el error.
Lo que pasa que me bajé ese ejemplo que me decías de Cristalab y las acciones están todas en una capa aparte, y los botones aparecen los dos en otra capa aparte, por lo que no puedo ponerle una acción solo a uno de los botones, por eso la puse en esta capa de acciones propiamente dicha, pero se ve que no lo toma bien.
Te subo los archivos con el php incluso por si los querés ver, estoy segura que debe ser una pavada (para vos) pero yo no logro dar con la respuesta y ya llevo bastantes horas encima, asi que me decidí por volverte a pedir ayuda, espero que leas pronto este mensaje!!!

Gracias otra vez!
  #6 (permalink)  
Antiguo 11/03/2009, 13:22
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 10 años, 11 meses
Puntos: 1
Respuesta: como funciona un formulario en flash??

Olvidé poner la URL.

http://www.estudioblazar.com.ar/swfo...ncy/index.html

Ahi tenés que entrar al link Contact y luego a Contact us, ahi está el formulario.

Gracias!
  #7 (permalink)  
Antiguo 12/03/2009, 09:44
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 10 años, 11 meses
Puntos: 1
Respuesta: como funciona un formulario en flash??

Bueno, con más tiempo dedicado logré resolver varias cosas yo solita .
De todas maneras me falta lo más importante: el mail no me llega a mi casilla...
es lo único que falta.
El bt. reset borra todos los campos, si faltan campos para llenar muestra una alerta, si se ingresa un email no válido lo rechaza y hasta me pone "sendig..."!!!
Pero a mi casilla no llega NADA.

Por favor, que alguien me diga qué estoy haciendo mal, gracias..
PD: el nuevo link es:
http://www.estudioblazar.com.ar/swfo...ncy/index.html
  #8 (permalink)  
Antiguo 12/03/2009, 14:32
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 10 años, 6 meses
Puntos: 67
Respuesta: como funciona un formulario en flash??

Escribe el codigo que usas, en php y AS.
  #9 (permalink)  
Antiguo 12/03/2009, 16:02
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 10 años, 11 meses
Puntos: 1
De acuerdo Respuesta: como funciona un formulario en flash??

Hola Diegoazul, gracias por interesarte.
EL php es este:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />
<title>:bnwagency.</title>
</head>
<body>
<?


$auth_domain 
= array("www.estudioblazar.com.ar");
$subject  "Forma de Contacto - www.bnwagency.com";
$mailTo "[email protected][email protected]";//email del destinatario
    

if (isset($HTTP_REFERER)) { 
    foreach (
$auth_domain as $line) {
        if (
eregi($line,$HTTP_REFERER)) {
            
$check_url 1;           
            continue;
        }
    }
}else{
    
$check_url 1;
}
if (
$check_url != 1) {
    echo 
"error=this formmail is not allowed in your domain";
    exit;
}


$date getdate(time());
$date sprintf("%s %s %s %s:%s:%s"$date["mday"],$date["month"],$date["year"],$date["hours"],$date["minutes"],$date["seconds"]);
$from "$nam<$email> ";
$header =  "From:$from\n";
$header .= "Reply-To:$from\n";

$body "The following comment has been sent by: \n";
$body .= "$name el $date\n\n";
$body .= "---------------------------------------------------------------\n\n";
$body .= "$nam\n\n";
$body .= "$company\n\n";
$body .= "$address\n\n";
$body .= "$email\n\n";
$body .= "$phone\n\n";
$body .= "$subject\n\n";
$body .= "$comments\n\n";
$body .= "---------------------------------------------------------------\n\n";
           
$header=trim($header);
ini_set("sendmail_from""[email protected]");
mail($mailTo$subject$body$header$date$from) or die("error=Message could not be delivered!");
echo 
"error=Your message has been succesfully sent!";

?>
</body>
</html>
Y el As:

stop ();
if (cgilocation == undefined) {
// set the following cgilocation to the url of the formmail script (php or perl) on your server";
// cgilocationÀ» ¼*¹ö¿¡ ¼³Ä¡ÇÑ formmail scriptÀÇ url·Î º¯°æÇØ ÁÖ¼¼¿ä..";
cgilocation = "shformml.php";
}
nam=""
company=""
address=""
email=""
phone=""
subject=""
comments = "";

error = ""
on (release) {
// Clear the text fields.
nam = "";
company = "";
address = "";
email = "";
phone = "";
subject = "";
comments = "";
error = "";
}
on (release) {
// check if the email address includes "@" and "." after more than 1 characer.
function checkemail (email) {
var str = new String(email);
var arr_email = str.split("@");
if (arr_email.length != 2 || arr_email[1].indexOf(".")<1) {
showerror("Invalid E-mail");
return false;
} else {
return true;
}

}
function showerror(message){
gotoAndStop("error");
error = message;
}

if (nam != "" && nam != undefined && email != "" && email != undefined && comments != "") {
if (checkemail(email)){
loadVariables(cgilocation, "", "POST");
showerror("Sending..");
}
} else {
trace("empty");
showerror("Please fill out the required fields.");
}
}




El AS te lo puse medio mezclado porque está en diferentes frames, no se como copiarlo en orden, espero que te sirva, sino avisame cómo lo querés.

Gracias!
  #10 (permalink)  
Antiguo 12/03/2009, 18:17
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 10 años, 6 meses
Puntos: 67
Respuesta: como funciona un formulario en flash??

Usa la clase LoadVars, es lo mejor para administrar las variables, aqui hay un ejemplo de su uso:

http://www.maestrosdelweb.com/editorial/fflashphpform/

si tienes dudas vienes.
  #11 (permalink)  
Antiguo 13/03/2009, 02:14
Avatar de sirguy  
Fecha de Ingreso: septiembre-2006
Ubicación: Mallorca
Mensajes: 959
Antigüedad: 11 años, 2 meses
Puntos: 12
Respuesta: como funciona un formulario en flash??

Por partes, Marilinadg yo te pasé un código mucho más sencillo en php, además estás validando en php y no en flash. Diegoazul, tienes que leer todo el post para poder dar una respuesta coherente, no se trata de repetir y aumentar respuestas sino de aportar algo al post.
__________________
Chanante!
  #12 (permalink)  
Antiguo 16/03/2009, 08:28
 
Fecha de Ingreso: enero-2007
Ubicación: perdida entre líneas de código...
Mensajes: 235
Antigüedad: 10 años, 11 meses
Puntos: 1
De acuerdo Respuesta: como funciona un formulario en flash??

Hola Sirguy, alf inal lo pude hacer como dijiste, me costó bastante entender el código, cada vez que lo volvia a reveer le sacaba algo nuevo en limpio...
Realmente voy a tratar de estudiar el tema porque me interesa mucho, pero en esta ocasión necesitaba sacar este trabajo con urgencia.
Te agradezco mucho las respuestas.
Hasta la próxima!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:17.