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

Enviar formulario con php? sin abrir ventana nueva

Estas en el tema de Enviar formulario con php? sin abrir ventana nueva en el foro de Flash y Actionscript en Foros del Web. Hola Estoy modificando un script que tengo para enviar un form desde flash usando contact.php. Todo funciona bien pero cuando hace el envío, se abre ...
  #1 (permalink)  
Antiguo 14/03/2008, 04:02
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 11 meses
Puntos: 15
Enviar formulario con php? sin abrir ventana nueva

Hola

Estoy modificando un script que tengo para enviar un form desde flash usando contact.php.

Todo funciona bien pero cuando hace el envío, se abre en una nueva ventana

Me gustaria que no se abra ninguna ventana y que un mensaje ("su mensaje ha sido enviado") aparezca en flash (podría ser en un campo de texto dinámico que tome una variable que le envíe contact.php)

Es posible?

aquí dejo todos los codigo:

en flash: el actionscript en la linea de tiempo donde están los campos del formulario

Código:
rec="[email protected]";
serv="php";

var fields_descriptions= Array ("", 
									Array("t1", "your_name", "Su Nombre:"), 
									Array("t2", "your_email", "Su Email:"),
									Array("t3", "telephone", "Su Telefono:"),
									Array("t4", "message", "El Mensaje:"),
									Array("t5", "field_2", "Su E-mail:"),
									Array("t6", "field_3", "Su Direccion"),
									Array("t7", "field_4", "Su Fax:")
								);

function reset_txt(name,name2,value) {
		path=eval(_target);
		path[name2]=value;
	
	this[name].onSetFocus=function() {
		path=eval(_target);
		if(path[name2]==value) { path[name2]="";} 
	}
	
	this[name].onKillFocus=function() {
		path=eval(_target);
		if(path[name2]=="") { path[name2]=value;} 
	}
}


for (i=1; i<=fields_descriptions.length; i++) {
	reset_txt("t"+i, fields_descriptions[i][1], fields_descriptions[i][2]);
}
en flash: El codigo que tiene el botón enviar del formulario
Código:
on (release) {
	for (i=1; i<_parent.fields_descriptions.length; i++) {
		if (_parent[_parent.fields_descriptions[i][1]]!=_parent.fields_descriptions[i][2]) {
			this[_parent.fields_descriptions[i][1]]=_parent[_parent.fields_descriptions[i][1]]+"&777&"+_parent.fields_descriptions[i][2];
		}
		_parent.reset_txt(_parent["t"+i], _parent.fields_descriptions[i][1], _parent.fields_descriptions[i][2]);
	}

	this.recipient=_parent.rec;
	delete(i);
	getURL("contact."+_parent.serv, "_blank", "POST");
	
}
contact.php

Código:
<?php
Error_Reporting(E_ALL & ~E_NOTICE);

 while ($request = current($_REQUEST)) {
 	if (key($_REQUEST)!='recipient') {
		$pre_array=split ("&777&",  $request);
		
		$post_vars[key($_REQUEST)][0]=preg_replace ("/<[^>]*>/", "", $pre_array[0]);
		$post_vars[key($_REQUEST)][1]=preg_replace ("/<[^>]*>/", "", $pre_array[1]);
	}
	next($_REQUEST);
}



reset($post_vars);


$subject="From ".$post_vars['your_name'][0] ;
$headers= "From: ".$post_vars['your_email'][0] ."n";
 $headers.='Content-type: text/html; charset=iso-8859-1';
 $message='';
  while ($mess = current($post_vars)) {
  	if ((key($post_vars)!="i") && (key($post_vars)!="your_email") && (key($post_vars)!="your_name")) {

	 	$message.="<strong>".$mess[1]."</strong>&nbsp;&nbsp;&nbsp;".$mess[0]."<br>";
	}
	next($post_vars);
 }

mail($_REQUEST['recipient'], $subject,  "
<html>
<head>
 <title>Contact letter</title>
</head>
<body>
<br>
  ".$message."
</body>
</html>" , $headers);


?>
muchas gracias
  #2 (permalink)  
Antiguo 14/03/2008, 04:31
Avatar de sirguy  
Fecha de Ingreso: septiembre-2006
Ubicación: Mallorca
Mensajes: 959
Antigüedad: 18 años, 1 mes
Puntos: 12
Re: Enviar formulario con php? sin abrir ventana nueva

Un ejemplo sencillote:

http://www.cristalab.com/tutoriales/...sando-loadvars
__________________
Chanante!
  #3 (permalink)  
Antiguo 14/03/2008, 04:33
 
Fecha de Ingreso: febrero-2007
Mensajes: 450
Antigüedad: 17 años, 9 meses
Puntos: 3
Re: Enviar formulario con php? sin abrir ventana nueva

También puedes abrir el PHP en un iframe oculto, de forma que no aparezca en pantalla.

Un saludo.
  #4 (permalink)  
Antiguo 14/03/2008, 05:30
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años
Puntos: 890
Re: Enviar formulario con php? sin abrir ventana nueva

De hecho el php no tiene que abrirse ni oculto ni en una ventana, solo se le envian las variables y php retorna otras.
__________________
Drupal Argentina
  #5 (permalink)  
Antiguo 14/03/2008, 06:03
 
Fecha de Ingreso: febrero-2007
Mensajes: 450
Antigüedad: 17 años, 9 meses
Puntos: 3
Re: Enviar formulario con php? sin abrir ventana nueva

Poniendole getURL("contact."+_parent.serv, "_blank", "POST"); si que se abrirá.

Saludos
  #6 (permalink)  
Antiguo 14/03/2008, 07:57
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 19 años
Puntos: 890
Re: Enviar formulario con php? sin abrir ventana nueva

No es la manera de enviar variables a un php.(aunque funcione estas llamando a que se abra la url con geturl)

La funcion en as2 seria Loadvars y el metodo seria sendAndLoad

var mivar = new LoadVars();
mivar.variable1 = "uno";
mivar.variable2 = "dos";
mivar.sendAndLoad("tuphp.php",mivar,"POST");

en tuphp.php tomar las variables y crear una que envie la respuesta , y en tu flash recibirlas mediante

mivar.onLoad = function() {
variable1 = mivar.var1; //var1 es la variable que recibe de php
trace("variable1");
}

Saludos
__________________
Drupal Argentina
  #7 (permalink)  
Antiguo 13/04/2008, 05:32
 
Fecha de Ingreso: febrero-2007
Mensajes: 450
Antigüedad: 17 años, 9 meses
Puntos: 3
Re: Enviar formulario con php? sin abrir ventana nueva

Retomo el tema para una pregunta relacionada:

Puede PHP devolverle más de una variable ? Puede devolverle un Array entero ?

De donde sale ese "var1" ? La/s variable/s que se reciben con el sendAndLoad aparecen en Flash como var1, var2, var3, varX, ... ??

Un saludo.
  #8 (permalink)  
Antiguo 13/04/2008, 08:27
Avatar de Alesius  
Fecha de Ingreso: marzo-2008
Mensajes: 87
Antigüedad: 16 años, 8 meses
Puntos: 1
Re: Enviar formulario con php? sin abrir ventana nueva

te doy un ejemplo:

como enviar las variables desde flash al PHP
Código:
  var contenedor:LoadVars = new LoadVars();
  contenedor.nombre= nombre.text;
  contenedor.apellido = apellido.text;
  contenedor.tel = tel.text;
  contenedor.mail = mail.text;	
  contenedor.msj = msj.text;

 // envio las variables al PHP
  contenedor.sendAndLoad("tuArchivo.php", contenedor, "POST");
recibo las variables de flash en el PHP

Código PHP:

        $nombre 
$_POST['nombre'];
    
$apellido $_POST['apellido'];
    
$tel$_POST['tel'];
    
$mail$_POST['mail'];
    
$msj$_POST['msj'];

        
// aca pones el codigo PHP para enviar el mail

        // devuelvo dos variables a flash, $msj_error y $gracias

        
echo "&msj_error=".$msj_error;
    echo 
"&gracias=".$gracias
recibo las variables en flash... esta parte del codigo va junto con la parte de arriba de flash, la escribo aca para ser mas didactico.

Código:
contenedor.onLoad = function() {

     estado.text = this.msj_error;
     deNada.text = this.gracias;
}

Espero que te sirva, saludos
  #9 (permalink)  
Antiguo 13/04/2008, 15:00
 
Fecha de Ingreso: febrero-2007
Mensajes: 450
Antigüedad: 17 años, 9 meses
Puntos: 3
Re: Enviar formulario con php? sin abrir ventana nueva

Que curioso lo del echo ! Creí que solo se podia hacer con return.

Muchas gracias por el ejemplo, muy bueno, voy a probarlo.

Saludos
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:40.