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

Fallo de un formulario dentro de la pelicula

Estas en el tema de Fallo de un formulario dentro de la pelicula en el foro de Flash y Actionscript en Foros del Web. Hola a todos! Tengo realizado un formulario en flash que interactúa con asp. He probado su correcto funcionamiento al diseñarlo (un swf, un html y ...
  #1 (permalink)  
Antiguo 04/06/2010, 15:40
 
Fecha de Ingreso: febrero-2005
Mensajes: 86
Antigüedad: 19 años, 10 meses
Puntos: 1
Fallo de un formulario dentro de la pelicula

Hola a todos!
Tengo realizado un formulario en flash que interactúa con asp. He probado su correcto funcionamiento al diseñarlo (un swf, un html y el asp) pero ahora que lo he insertado (creando el MC dentro de una pelicula) me encuentro que falla no pudiendo enviar los datos.

Copio por partes:

Formulario (primer fotograma)

//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.nombre = nombre_txt.text;
envio_lv.telefono = telefono_txt.text;
envio_lv.email = email_txt.text;
envio_lv.consulta = consulta_txt.text;
envio_lv.sendAndLoad("email.asp", recibir_lv, "POST");
}
//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";
}
};

Script del Boton

on (release) {
estado_txt.text = "Enviando su correo ...";
enviarMail();
}

Código de la pagina ASP que levanta las variables y envía el mail:

<%
Response.Buffer = True

Dim nombre, telefono, email
Dim consulta

nombre=Request.Form("nombre")
telefono=Request.Form("telefono")
email=Request.Form("email")
consulta=Request.Form("consulta")

Dim HTML

HTML = "<!DOCTYPE HTML PUBLIC ""-//IETF//DTD HTML//EN"">"
HTML = HTML & "<html lang=""es"">"
HTML = HTML & "<html>"
HTML = HTML & "<head>"
HTML = HTML & "<meta http-equiv=""Content-Type"""
HTML = HTML & "content=""text/html; charset=iso-8859-1"">"
HTML = HTML & "<title>Consulta desde la Web</title>"
HTML = HTML & "</head>"
HTML = HTML & "<body bgcolor=""FFFFFF"">"
HTML = HTML & "<font size =""2"" face=""Arial"">"
HTML = HTML & "<div align=""center""><strong>Consulta desde la Web</strong></div>"
HTML = HTML & "Nombre y Apellido: <strong>" & nombre & "</strong><br>"
HTML = HTML & "Telefono: <strong>" & telefono & "</strong><br>"
HTML = HTML & "Email: <strong>" & email & "</strong><br>"
HTML = HTML & "Consulta: <strong>" & consulta & "</strong><br>"
HTML = HTML & "</font>"
HTML = HTML & "</body>"
HTML = HTML & "</html>"

Set link = CreateObject("CDONTS.Newmail")

link.mailFormat=0
link.bodyFormat=0

link.From = request.form("email")
link.To = "[email protected]"
link.Subject = "Consulta desde la Web"
link.Body = HTML

link.Send
Set link = Nothing
%>
&estado=Mensaje enviado


Aclaro que la pagina ASP se encuentra en el mismo nivel que la pagina HTML que lleva el SWF, tal como funcionaba el formulario solo con su respectivo HTML y ASP.

Lo que imagino pueda suceder es un error en la búsqueda de la pagina ASP y posteriormente la confirmación del envío que retorna al SWF.
El punto es que no sale y el script del flash lanza ERROR EN LA APLICACION DE CORREO.

Bueno, como siempre que he preguntado algo, agradeceré muchísimo cualquier sugerencia o idea, todo es bienvenido.

Un saludo!
  #2 (permalink)  
Antiguo 06/06/2010, 01:39
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 3 meses
Puntos: 214
Respuesta: Fallo de un formulario dentro de la pelicula

Hola
Bueno, no tengo asp para probar, pero pues en donde esta el swf?
si por ej tienes algo así:

archivo.html
email.asp
carpeta/archivo.swf

entonces loadvars podrías cambiarlo a ../email.asp
prueba y comentas

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 06/06/2010, 09:28
 
Fecha de Ingreso: febrero-2005
Mensajes: 86
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Fallo de un formulario dentro de la pelicula

Mortiprogamador, gracias por tu respuesta.
Te comento que todos los archivos (html, swf y asp) se encuentran en el mismo lugar, raiz del directorio.
No es relevante que sea asp o php el archivo que se encargará de mandar el mail, lo que presumo es que el error tiene que estar en el script del swf.
No soy experto en ello y despues de distintas pruebas no he podido aún encontrar el orígen del problema.
Gracias nuevamente por cualquier sugerencia que puedas aportarme.
  #4 (permalink)  
Antiguo 06/06/2010, 14:46
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 3 meses
Puntos: 214
Respuesta: Fallo de un formulario dentro de la pelicula

Hola
as2 cierto???

Bueno, dices que ahora creaste un movieclip dentro de la película,
pregunto entonces el código de la función enviarMail esta en
un frame del stage o del movieclip creado?

si esta en el stage, y si le diste nombre de instancia al movieclip,
entonces debes agregar eso a los text, ej:

Código actionscript:
Ver original
  1. envio_lv.nombre = mc_formulario.nombre_txt.text;

nos comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 06/06/2010, 14:57
 
Fecha de Ingreso: febrero-2005
Mensajes: 86
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Fallo de un formulario dentro de la pelicula

Gracias nuevamente!
Te respondo: la función Enviar el mail se encuentrá en el movieclip del formulario, y le di nombre a la instancia dentro de la escena donde se encuentra (mc_form).
No creo que sea relevante, pero agrego como información que mi película consta de 5 escenas, estando en Contacto el formulario en cuestión.
Muchas gracias!
  #6 (permalink)  
Antiguo 07/06/2010, 00:21
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 3 meses
Puntos: 214
Respuesta: Fallo de un formulario dentro de la pelicula

Cita:
Iniciado por edysierra Ver Mensaje
Gracias nuevamente!
Te respondo: la función Enviar el mail se encuentrá en el movieclip del formulario, y le di nombre a la instancia dentro de la escena donde se encuentra (mc_form).
No creo que sea relevante, pero agrego como información que mi película consta de 5 escenas, estando en Contacto el formulario en cuestión.
Muchas gracias!
Hola
Bueno, a ver, si entendí, tienes en alguna de las escenas del stage una en donde tienes un movieclip (mc_form) el cual, dentro de si tiene todos los elementos del formulario (nombre,telefono,email,consulta,estado y botón), y la función enviarMail esta dentro de dicho movieclip

Si todo esto es true entonces debes hacer estos cambios:

Botón

Código actionscript:
Ver original
  1. on (release) {
  2.     _root.mc_form.estado_txt.text = "Enviando su correo ...";
  3.     _root.mc_form.enviarMail();
  4. }

mc_form->

Código actionscript:
Ver original
  1. //Declaro las variables para enviar y para recibir
  2. var envio_lv:LoadVars = new LoadVars();
  3. var recibir_lv:LoadVars = new LoadVars();
  4. //Función que envia el forumlario
  5. function enviarMail()
  6. {
  7.     envio_lv.nombre = _root.mc_form.nombre_txt.text;
  8.     envio_lv.telefono = _root.mc_form.telefono_txt.text;
  9.     envio_lv.email = _root.mc_form.email_txt.text;
  10.     envio_lv.consulta = _root.mc_form.consulta_txt.text;
  11.     envio_lv.sendAndLoad("email.asp", recibir_lv, "POST");
  12. }
  13. //Función que procesa los datos recibidos del servidor
  14. recibir_lv.onLoad = function(exito)
  15. {
  16.     if (exito)
  17.     {
  18.         _root.mc_form.estado_txt.text = this.estado;
  19.     }
  20.     else
  21.     {
  22.         //Muestra un mensaje de error en negrita
  23.         _root.mc_form.estado_txt.text = "Error en la aplicación de correo";
  24.     }
  25. };

Esto por el alcance de variables dentro del fla,
pruebalo y comentas

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #7 (permalink)  
Antiguo 07/06/2010, 08:24
 
Fecha de Ingreso: febrero-2005
Mensajes: 86
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Fallo de un formulario dentro de la pelicula

Mortiprogramador, gracias por tu interés en ayudarme.
Mira, hice los cambios que propusiste y da error de la aplicacion de correo.
Ahora te pregunto lo siguiente: los campos del form están nombrados como nombre, telefono, etc.
Por lo que veo en tus arreglos los haz colocados de la siguiente manera:
envio_lv.nombre = _root.mc_form.nombre_txt.text;
Debo entonces renombrar los campos anteponiendoles mc_form?
Perdona si estoy diciendo una burrada.
Y de ser así, por consiguiente, deberé cambiar también los nombres en la pagina ASP que hace el request de cada uno de ellos.

Bueno, espero tu comentario ansiosamente pues estoy empantanado con este punto del trabajo.

Un saludo cordial!
  #8 (permalink)  
Antiguo 07/06/2010, 15:08
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 3 meses
Puntos: 214
Respuesta: Fallo de un formulario dentro de la pelicula

Edysierra, de nada.

bueno, pues si tienes el text nombre dentro del movieclip mc_form
si debes hacerlo, porque? pues porque mc_form viene siendo la "madre" de nombre_txt, y as2 necesita toda la línea familiar para funcionar

si no los tienes dentro de mc_form entonces debes dejarlos sin ese mc_form
y solo seria _root.nombre_txt

En cuanto al asp, las variables de asp deben coincidir con el nombre de las variables de loadvars, no los nombres de los campos de los formularios, es decir, si tuvieras un text llamado nombresote_txt pero el loadvars es loadvars.nombre,
entonces flash enviara una variable llamada nombre hacia asp, y asp debe recibirla como tal

pruebas y comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #9 (permalink)  
Antiguo 08/06/2010, 11:13
 
Fecha de Ingreso: febrero-2005
Mensajes: 86
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Fallo de un formulario dentro de la pelicula

Mortiprogramador

Perdona que ayer no pude responderte, pero queria comentarte que Flash no me deja cambiar los nombres de los campos. Cuando pongo _root.mc_form.estado_txt sale un mensaje que dice que contiene caracteres inválidos (supongo que por el punto que sigue a form). Lo mismo sucedio para los demás campos.
Te recuerdo que lo estoy haciendo en AS2 y Flash Player 8 aunque no se si esto tendrá que ver.
Qué puedo hacer entonces para renombrar los campos?.
Muchas gracias y quedo a la espera de tus comentarios!

Un saludo
  #10 (permalink)  
Antiguo 08/06/2010, 11:31
 
Fecha de Ingreso: febrero-2005
Mensajes: 86
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Fallo de un formulario dentro de la pelicula

Textualmente dice la ventana emergente:
_root.mc_form.estado_txt no es un nombre de instancia válido. Especifique un identificador que contenga caracteres alfanuméricos, símbolos admitidos y ningun espacio en blanco.
  #11 (permalink)  
Antiguo 08/06/2010, 11:49
 
Fecha de Ingreso: enero-2010
Mensajes: 91
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Fallo de un formulario dentro de la pelicula

Hola Edysierra, perdón por meterme en tu tema, pero resulta q tengo un problema similar, yo tambien tengo un formulario hecho dentro de un MC en flash con AS2, debia insertarle código q interpretara un captcha. Cómo no fue así me dijeron q por seguridad debía incluirle Variables de expresión logica de validación.
Pero si bien esto es por seguridad no implicaría q no pueda enviar el formulario cosa q no puedo.
Ahora observe q tu flash obviamente esta dentro del HTML y q en el HTML has puesto código referente a tu formulario en flash, crees q a mi no me funciona puesto q no había puesto nada en el HTML?
Esperando haberme explicado gracias desde ya.
  #12 (permalink)  
Antiguo 08/06/2010, 12:13
 
Fecha de Ingreso: febrero-2005
Mensajes: 86
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Fallo de un formulario dentro de la pelicula

Natobicarbo
Yo en el html no puse nada ya que el trabajo está hecho enteramente en flash.
Mi problema es, como dices, que tengo un form dentro de un MC y evidentemente no salen los datos hacia el asp por un tema de ruteo, que no pude resolver.
Si lees los comentarios que hizo Mortiprogramador aqui mismo, tal vez puedas probar en tu trabajo. Yo tengo ahoa el inconveniente que no me deja asignarle el nombre a las instancias de los campos tal como me sugirió.
Bueno, todos los aportes sirven asi que espero que de aquí haya información que te sea útil.

Un saludo!
  #13 (permalink)  
Antiguo 08/06/2010, 12:21
 
Fecha de Ingreso: enero-2010
Mensajes: 91
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Fallo de un formulario dentro de la pelicula

Edysierra, disculpame yo me refería a este código q habías puesto:


Dim HTML

HTML = "<!DOCTYPE HTML PUBLIC ""-//IETF//DTD HTML//EN"">"
HTML = HTML & "<html lang=""es"">"
HTML = HTML & "<html>"
HTML = HTML & "<head>"
HTML = HTML & "<meta http-equiv=""Content-Type"""
HTML = HTML & "content=""text/html; charset=iso-8859-1"">"
HTML = HTML & "<title>Consulta desde la Web</title>"
HTML = HTML & "</head>"
HTML = HTML & "<body bgcolor=""FFFFFF"">"
HTML = HTML & "<font size =""2"" face=""Arial"">"
HTML = HTML & "<div align=""center""><strong>Consulta desde la Web</strong></div>"
HTML = HTML & "Nombre y Apellido: <strong>" & nombre & "</strong><br>"
HTML = HTML & "Telefono: <strong>" & telefono & "</strong><br>"
HTML = HTML & "Email: <strong>" & email & "</strong><br>"
HTML = HTML & "Consulta: <strong>" & consulta & "</strong><br>"
HTML = HTML & "</font>"
HTML = HTML & "</body>"
HTML = HTML & "</html>"

Set link = CreateObject("CDONTS.Newmail")

link.mailFormat=0
link.bodyFormat=0

link.From = request.form("email")
link.To = "[email protected]"
link.Subject = "Consulta desde la Web"
link.Body = HTML

link.Send
Set link = Nothing
%>
&estado=Mensaje enviado


En donde has puesto este código? Tal vez sea asp del cuál no tengo idea por eso te pregunto, gracias.

Intentare tambien cambiar mi ruta segun Mortiprogramador, y vemos.
  #14 (permalink)  
Antiguo 08/06/2010, 12:41
 
Fecha de Ingreso: febrero-2005
Mensajes: 86
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Fallo de un formulario dentro de la pelicula

Ahora entiendo mejor lo que preguntabas. Esa parte que dice que saldrá como html está dentro del asp, en la parte que da forma al mail que se enviará con los datos introducidos en los campos, de manera que el que lo recibe los verá formateados como html y no texto plano.
Es una cuestión de estética pero que no hace al funcionamiento en sí.
Después que hagas esos cambios comentame si anduvieron bien.

Gracias.
  #15 (permalink)  
Antiguo 08/06/2010, 15:58
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 3 meses
Puntos: 214
Respuesta: Fallo de un formulario dentro de la pelicula

Hola
Bueno, pues en el ejemplo que yo hice para probar tengo un movieclip llamado mc_form que esta ubicado en el stage (escenario)

Luego, dentro de este movieclip, ubico los campos de texto (que son campos de tipo input text) y a medida que los inserto, doy un click sobre ellos y voy al panel de propiedades, y allí se les da el nombre que se quiera

Así que edysierra, revisa eso que te deje cambiar el nombre de instancia (el nombre que le pones en el panel propiedades) y que coincidan con el código que ya tengas en cuanto a nombres de campos se refiere

Si persiste el inconveniente, prueba en un flash vacio
Yo lo hice en as2 pero no recuerdo para que versión de flash publique, pero pues eso no creo incida mucho en cuanto a campos de texto se refiere

Si con todo esto, persiste, entonces intenta en otro equipo que tenga instalado flash, y si en el otro equipo te funciona, entonces reinstala flash en el tuyo, tuve un amigo que le pasaba eso (super raro el bug) y pues le toco reinstalar

saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #16 (permalink)  
Antiguo 10/06/2010, 14:33
 
Fecha de Ingreso: febrero-2005
Mensajes: 86
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Fallo de un formulario dentro de la pelicula

Mortiprogramador, de nuevo molestandote con preguntas, pero es que no he podido solucionar el problema del form, aún habiendo hecho lo que me indicabas para que me dejara poner el nombre de la instancia con el _root.

Releyendo el penúltimo comentario tuyo, veo que dices que habias realizado una prueba diseñando un form en un MC y colocándolo en el escenario.
Pues bien, tengo las siguientes dudas: cuando te refieres a escenario supongo que será el principal de la película y si esto es verdad, allí no hay problemas para el funcionamiento.

El tema está en que el MC del form está contenido en un frame instanciado mc_form de la quinta escena y resulta imposible cambiarle el nombre a las instancias de los respectivos para ponerle, por ejemplo: _root.mc_form.nombre_txt

PD: reinstalé mi Flash CS3 pero tampoco me deja poner ese nombre en la instancia del Input

Gracias por darme una mano y disculpa mis limitados conocimientos en esto.

Un saludo!
  #17 (permalink)  
Antiguo 10/06/2010, 15:16
 
Fecha de Ingreso: febrero-2005
Mensajes: 86
Antigüedad: 19 años, 10 meses
Puntos: 1
Problema solucionado

Mortiprogramador
Finalmente le di solución partiendo de algo que me dijiste en tu último mensaje relacionado a que los campos se encontraran sobre la escena y fuera del MC como alternativa para evitar el _root.
Pues bien, hice eso y dejé los nombres de los campos tal como estaban y funcionó todo perfecto!.
Gracias por todo el tiempo que destinaste a ayudarme y espero que a otros les pueda resultar de utilidad este sencillo desarrollo ya que he leído mucho sobre los inconvenientes que se presentan cuando se tabaja con asp.

Un cordial saludo!!!

Edysierra
  #18 (permalink)  
Antiguo 10/06/2010, 17:38
 
Fecha de Ingreso: enero-2010
Mensajes: 91
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Fallo de un formulario dentro de la pelicula

Hola, me alegro q hayas podido solucionar tu problema ahora mi pregunta es, si antes tenias el formulario dentro de un MC q supongo q llamabas al escenario desde un botón. (así lo tengo yo) al poner ahora el formulario en el escenario y no en el MC como haces para llamar al MC y al formulario? bue creo q no me explique bien, pero esa es mi pregunta, Exitos y gracias por todo aún no pude ponerme en el mío igual luego les comento sino es molestia.
  #19 (permalink)  
Antiguo 10/06/2010, 19:13
 
Fecha de Ingreso: febrero-2005
Mensajes: 86
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Fallo de un formulario dentro de la pelicula

Hola Natobicarbo!

Te comento cómo lo tenía yo y cómo lo resolví. En primer lugar estaba en un MC dentro de una escena. Al formulario no llamaba a través de un botón sino que aparecía por medio de una breve animación.
Ese form, que ya estaba hecho como mc, tenia los campos correspondientes con sus respectivos nombres de instancias. Hasta ahi no funcionaba, a menos q lo sacara de la pelicula y entonces sí.
La resolución fue: en el mc original del form, en mi escena, le eliminé los campos (todos), y dejé la animación como estaba. Qué me traia? pues el fondo y algun otro elemento decorativo, pero nada más.
En la escena hice una nueva capa y en el mismo lugar donde aparecía y se quedaba quieto el mc del antiguo form, inserté los campos que necesitaba, instanciandolos con el mismo nombre que tenía antes (ej: nombre_txt).
En otra capa puse el botón y en otra la acción, scripts que copio a continuación:

Botón:
on (release) {
estado_txt.text = "Enviando su correo ...";
enviarMail();
}

Capa Action
//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 formulario
function enviarMail()
{
//if(_nombre_txt.text.length<1){
// estado_txt.text="por favor complete el campo nombre";return;
//}
envio_lv.nombre = nombre_txt.text;
envio_lv.telefono = telefono_txt.text;
envio_lv.email = email_txt.text;
envio_lv.consulta = consulta_txt.text;
envio_lv.sendAndLoad("email.asp", 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";
}
};


De esta manera no es necesario rutear los campos (_root) pues ya están colocados en la linea principal de mi escena. Esto surgió por la sugerencia de Mortiprogramador a quien le agradezco mucho las ideas que me aportó.

Recuerda que el archivo que procesa el envío del correo tiene que estar en la misma carpeta donde está tu película, al mismo nivel. Puede ser ASP (mi caso) o PHP si es el que manejas.

Bueno, espero no haber sido confuso. Si tienes alguna duda respecto a este funcionamiento, con todo gusto trataré de ayudarte.

PD: ahora me encuentro tratando de hacerle una validación de los campos que no sea demasiado confusa porque para tanto no dan mis conocimientos.

Un saludo!!

Etiquetas: fallo, pelicula, formulario
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 08:58.