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

Enviar variables para formulario

Estas en el tema de Enviar variables para formulario en el foro de Flash y Actionscript en Foros del Web. Saludos! Aquí sigo liado con mi formulario. El swf lee todos los campos y los verifica antes de permitir que se pase al frame siguiente. ...
  #1 (permalink)  
Antiguo 21/07/2005, 03:29
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 5 meses
Puntos: 1
Enviar variables para formulario

Saludos!

Aquí sigo liado con mi formulario. El swf lee todos los campos y los verifica antes de permitir que se pase al frame siguiente. (Es un formulario con 7 pasos)

El problema ahora es que cuando envío el formulario con PHP en mi email no recibo las variables globales. Les voy a poner un ejemplo de cómo funciona mi formulario:

[NOTA: no soy programador, mi código es resultado de tomar ejemplos de la web y trastear los archivos de ayuda de actionscript, seguramente habrá más de un error ]

* En el fotograma 1 de la escena 1 de mi swf he insertado un movie clip "formulario"

* El mc "formulario" tiene 7 frames, cada una de las etapas del formulario

* En cada etapa he colocado campos de texto "introducción de texto" y en propiedades, var, les di un nombre.

*En el segundo de los 7 frames del mc "formulario" hay otro mc, "radio"

*Radio funciona de la siguiente manera (es para determinar el sexo)

-en fotograma 1 de radio creo 2 funciones:

Código:
function sexohombre() {
		_global.sexo = "hombre";
		}	
                      function sexomujer() {
		_global.sexo = "mujer";
		}
- creo 2 botones, hombre y mujer

Código:
on (press) {
			sexohombre();
			dTxtSexo = _global.sexo;
			gotoAndStop(2);

		}
- creo un campo de texto dinámico oculto dTxtSexo
en el que se guarda la opción elegida por el usuario


* A la hora de enviar el formulario

- En el mc "formulario", escena 1, fotograma 1

Código:
function enviar() {
	      enviar = new LoadVars();
                   enviar.nombre = nombre;
                   enviar.apellidos = apellidos;
                   enviar.dTxtSexo = dTxtSexo;

                   info = "Enviando solicitud"
	      enviar.onLoad = function(success) {
	      info = "Su mensaje fue enviado correctamente";
		
	      };
	      enviar.sendAndLoad("flaform2.php", enviar, "POST");
                   }
- En el fotograma 7 de "formulario" el botón "enviar" (después de
verificar que los campos están rellenos)

Código:
on (press) {
	                  enviar();
                      }
* Por otro lado escribo el flaform2.php

Código:
<?php
$MailTo="[email protected]";
$dia=date("m.d.Y");
$hora=date("H:i:s");
$contenido="
El Mensaje se Envio el  $dia a las $hora:\n\n
-------------------------------------------------------\n

Nombre : $nombre\n
Apellidos: $apellidos\n
Sexo: $dTxtSexo\n
--------------------------------------------------------\n

";
mail($MailTo, "$subject (de $nombre)", $contenido, "From: $MailFrom");
?>


BIEN, pues recibo perfectamente el nombre y los apellidos, pero el sexo aparece vacío. En el código que les acabo de presentar sigo las mismas pautas que utilizo en formularios más sencillos que me funcionan sin problemas, en los que únicamente el usuario debe introducir datos y no elegir una opción entre varias disponibles.

He probado otras oopciones de código, pero no funcionan, por eso les pongo el código tal y como usé la primera vez, basándome en un ejemplo que me había funcionado bien.

Espero me puedan echar una mano, ya que he dedicado muchas horas a este formulario para ahora no poder recibir los datos


SALUDOS!!!!!!
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #2 (permalink)  
Antiguo 22/07/2005, 04:43
 
Fecha de Ingreso: julio-2005
Ubicación: Valencia
Mensajes: 16
Antigüedad: 12 años, 4 meses
Puntos: 1
franquero, no se si lo has solucionado ya
pero lo mas logico, al margen de que trabajes con frames y no me gusta, es que conviertas las globales en una variable antes de enviarlas, ejemplo:

globales- _global.sexo

conviertes- datos.sexo = _global.sexo

envias- datos.loadVariables(".....archivo",etcccc,datos)

PD: no me he centrado mucho en la linea de enviar por que doy por hecho que ya lo haces, dime algo sobre el tema, saludos.
  #3 (permalink)  
Antiguo 22/07/2005, 06:00
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 5 meses
Puntos: 1
Gracias por responder aqtm22. Entiendo lo que dices, pero la verdad es q no sé muy bien cómo hacerlo. En mi primer post está todo el código (resumido) que utilizo.

Lo resumo más:
- defino la global "_globla.sexo"
Código:
                      function sexohombre() {
		_global.sexo = "hombre";
		}	
                      function sexomujer() {
		_global.sexo = "mujer";
		}
- La relaciono con la variable dTxtSexo:

Código:
                          on (press) {
			sexohombre();
			dTxtSexo = _global.sexo;
			gotoAndStop(2);

		}
-Envío la variable

Código:
                   function enviar() {
	      enviar = new LoadVars();
                   enviar.nombre = nombre;
                   enviar.dTxtSexo = dTxtSexo;

                   (...)
                   enviar.sendAndLoad("flaform2.php", enviar, "POST");
                   }
- En el php:

Código:
Nombre: $nombre\n
Sexo: $dTxtSexo\n
- Resultado
Código:
- Recibo perfectamente el contenido de "NOMBRE"
- El campo SEXO aparece vacío
- Yo pienso que el problema está en cómo llamar a _global.sexo o dTxtSexo para que envíe su contenido, ya que al estar insertado en un movie clip dentro del principal, no sé qué ruta, o de qué manera ponerlo para que se envíe.
Lo he intentado de muchas formas combinando las formas de escribir el código en el flash y en el php, pero ninguna funciona.

Espero haber sido más claro, y gracias de antemano por intentar ayudarme.

SALUDOS!!!!!!
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
  #4 (permalink)  
Antiguo 25/07/2005, 07:04
Avatar de franquero  
Fecha de Ingreso: julio-2005
Mensajes: 179
Antigüedad: 12 años, 5 meses
Puntos: 1
Solucionado

Ya solucioné el problema. Como suponía era un error de concepto fundamental. Lo escribo a continuación por si alguien se encuentra con el mismo problema.

Coloco los campos de texto dinámicos en la escena principal, y aunque sigo usando un mc "formulario" y dentro de éste más mc, desde los mc secundarios envío la variable a la escena principal con "_root."

Defino la función
Código:
 
function sexohombre() {
		genero = "hombre";
		}
Creo el botón (todo esto hay que repetirlo para la opción mujer)
Código:
on (press) {
	sexohombre();
	_root.dTxtSexo = genero;
	gotoAndStop(2);

	}
Y en la función enviar()
Código:
enviar.dTxtSexo = _root.dTxtSexo;
En el php
Código:
Sexo: $dTxtSexo
__________________
Es una suerte que la sociedad libre sea más productiva, porque de no haberlo sido jamás se habría tolerado.
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 15:16.