Cita:
Hola, he copiado el código para enviar formularios con php y funciona correctamente en flash MX, pero necesito pasarlo a flash 5. ¿Que tengo que cambiar del código para que funcione? ¿tiene algo que ver con la función LoadVars? Te agradecería enormemente que me ayudaras. Un saludo.
Iniciado por maltos
Formail
+ Flash 5, MX
Bueno este archivo es gracias a cheditas.
Contiene dos archivos, un archivo php y un archivo .fla, ojo que hay que crear con el fla el html y el swf.
El archivo php no tiene mas configuracion que la siguiente....
$MailTo="[email protected]";
Aqui hay que cambiar la linea por el correo a donde sera enviada la informacion.
Este formmail esta habilitado para recibir las variables...
$subject
$nombre
$apellido
$contenido
$MailFrom
Variables que toma, procesa y envia a la direccion que le especificamos.
Veamos que tiene el fla.
Tiene una funcion borrar...
Una funcion enviar...
function enviar() {
enviar = new LoadVars();
enviar.nombre = nombre;
enviar.apellido = apellido;
enviar.MailFrom = MailFrom;
enviar.subject = subject;
enviar.mensaje = mensaje;
enviar.onLoad = function(success) {
status = "Su Mensaje Fue enviado Correctamente";
borrar();
};
enviar.sendAndLoad("flaform.php", enviar, "POST");
}
El envio de variables se hace con el metodo POST, en metodos anteriores de envio se usaba loadVariables, pero tenia el problema de que o se utilizaba una concatenacion o se enviaban todas las variables, al cambiar esto a la creacion de un objeto LOAD VARS, podemos definis las variables que tiene el objeto LOAD VARS que creamos y enviar los subobjetos que contiene dicho objeto, para este caso se llama enviar.
enviar.onLoad = function(success) {
status = "Su Mensaje Fue enviado Correctamente";
borrar();
};
Esta parte lo que hace es comprobar que ha terminado la respuesta del servidor, especificamente del php y que los datos estan listos para procesase.
-----
Verificando la validacion
if (MailFrom.indexOf("@") != -1 && MailFrom.indexOf(".") != -1 && nombre != "" && apellido != "" && mensaje != "") {
enviar();
}
Si nos damos cuenta aparece lo siguiente...
MailFrom.indexOf("@") != -1
indexOf es un derivado de JS que lo que permite es verificar si existe la parte de una cadena dentro de otra, en el caso de que exista regresa un true, pero en el caso de que no sea asi regresa un -1 es por eso que este if comprueba que no regrese un -1 que equivale a que no hay un @ dentro de la direccion email, simbolo que por logica debe de existir, de la misma manera comprueba que exista un punto . ya que todas las direcciones llevan punto
nombre != "" && apellido != "" && mensaje != "")
Esto lo que hace es comprobar que no se hayan dejado en blanco los campos, sin embargo aqui noto que el codigo tiene un error, porque el "" representa que el campo esta vacio pero que ya fue todaco por el cursor, pero cuando el cuadro no ha sido tocado no representa "" sino un null por lo que no seria malo agregar esto....
&& nombre != null && apellido != null && mensaje != null
Bueno eso se los dejo a su criterio.
Espero haber explicado todo este codigo, conste que no lo hice yo, unicamente hice el analisis de como funciona.
Saludos
Arturo Maltos
+ Flash 5, MX
Bueno este archivo es gracias a cheditas.
Contiene dos archivos, un archivo php y un archivo .fla, ojo que hay que crear con el fla el html y el swf.
El archivo php no tiene mas configuracion que la siguiente....
$MailTo="[email protected]";
Aqui hay que cambiar la linea por el correo a donde sera enviada la informacion.
Este formmail esta habilitado para recibir las variables...
$subject
$nombre
$apellido
$contenido
$MailFrom
Variables que toma, procesa y envia a la direccion que le especificamos.
Veamos que tiene el fla.
Tiene una funcion borrar...
Código:
Que lo que hace es vaciar cada uno de los campos de texto dejandolos limpios, dicha funcion se dispara al hacer click en el boton borrar.function borrar() { nombre = ""; apellido = ""; MailFrom = ""; subject = ""; mensaje = ""; }
Una funcion enviar...
function enviar() {
enviar = new LoadVars();
enviar.nombre = nombre;
enviar.apellido = apellido;
enviar.MailFrom = MailFrom;
enviar.subject = subject;
enviar.mensaje = mensaje;
enviar.onLoad = function(success) {
status = "Su Mensaje Fue enviado Correctamente";
borrar();
};
enviar.sendAndLoad("flaform.php", enviar, "POST");
}
El envio de variables se hace con el metodo POST, en metodos anteriores de envio se usaba loadVariables, pero tenia el problema de que o se utilizaba una concatenacion o se enviaban todas las variables, al cambiar esto a la creacion de un objeto LOAD VARS, podemos definis las variables que tiene el objeto LOAD VARS que creamos y enviar los subobjetos que contiene dicho objeto, para este caso se llama enviar.
enviar.onLoad = function(success) {
status = "Su Mensaje Fue enviado Correctamente";
borrar();
};
Esta parte lo que hace es comprobar que ha terminado la respuesta del servidor, especificamente del php y que los datos estan listos para procesase.
Código:
Esta ultima linea hace una peticion de envio y recepcion de informacion, el envio es procesado por el servidor y la recepcion activa el onLoad que efectua las operaciones indicadas.enviar.sendAndLoad("flaform.php", enviar, "POST");
-----
Verificando la validacion
if (MailFrom.indexOf("@") != -1 && MailFrom.indexOf(".") != -1 && nombre != "" && apellido != "" && mensaje != "") {
enviar();
}
Si nos damos cuenta aparece lo siguiente...
MailFrom.indexOf("@") != -1
indexOf es un derivado de JS que lo que permite es verificar si existe la parte de una cadena dentro de otra, en el caso de que exista regresa un true, pero en el caso de que no sea asi regresa un -1 es por eso que este if comprueba que no regrese un -1 que equivale a que no hay un @ dentro de la direccion email, simbolo que por logica debe de existir, de la misma manera comprueba que exista un punto . ya que todas las direcciones llevan punto
nombre != "" && apellido != "" && mensaje != "")
Esto lo que hace es comprobar que no se hayan dejado en blanco los campos, sin embargo aqui noto que el codigo tiene un error, porque el "" representa que el campo esta vacio pero que ya fue todaco por el cursor, pero cuando el cuadro no ha sido tocado no representa "" sino un null por lo que no seria malo agregar esto....
&& nombre != null && apellido != null && mensaje != null
Bueno eso se los dejo a su criterio.
Espero haber explicado todo este codigo, conste que no lo hice yo, unicamente hice el analisis de como funciona.
Saludos
Arturo Maltos