Foros del Web » Programando para Internet » PHP »

Mensaje de ok de envio de formulario

Estas en el tema de Mensaje de ok de envio de formulario en el foro de PHP en Foros del Web. Buen dia Quiero que el mensaje de envio de que el formulario fue enviado con exito aparezca en la misma pagina, actualmente al presionar enviar ...
  #1 (permalink)  
Antiguo 24/01/2013, 09:44
 
Fecha de Ingreso: enero-2013
Ubicación: Quilmes
Mensajes: 10
Antigüedad: 11 años, 3 meses
Puntos: 0
Mensaje de ok de envio de formulario

Buen dia

Quiero que el mensaje de envio de que el formulario fue enviado con exito aparezca en la misma pagina, actualmente al presionar enviar me abre una pagina en blanco con el mensaje y luego se direcciona a la pagina del formulario...lo que quiero es que el mensaje se muestre pero en la misma pagina del formulario...adjunto script...
gcias.



if (form_mail("[email protected]", "Formulario de contacto",

"Los datos introducidos en el formulario son:\n\n", "[email protected]")) //email envio

echo "Su formulario ha sido enviado con exito <meta http-equiv='refresh' content='3; url=pag1.html' >";

?>

</body>

</html>
  #2 (permalink)  
Antiguo 24/01/2013, 09:48
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Mensaje de ok de envio de formulario

A ver... voy a ver si adivino... (falta muchísima informacion)

Tienes dos archivos? mmm al parecer el form que me imagino llama a otra pagina donde esta el código que muestras y de allí hace la dirección, si eso es así... solo debes cambiar el action del form para que se llame asi mismo y el código que hace el envío debería estar donde esta el form

Creo que algo así seria... como dije solo estoy adivinando

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 24/01/2013, 09:49
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Mensaje de ok de envio de formulario

el detalle es que al hacer una petición tradicional, se recarga la página, tiene 2 opciones:

- enviar la petición por AJAX

- usar un iframe oculto como target del form, de modo que la respuesta aparece en el iframe sin recargar la página principal, pudiendo embeber un Javascript alert con el mensaje, básicamente esta es una forma rudimentaria de AJAX, como alternativa si no tiene dominio sobre el tema de AJAX
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 24/01/2013, 09:53
 
Fecha de Ingreso: enero-2013
Ubicación: Quilmes
Mensajes: 10
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Mensaje de ok de envio de formulario

gracias Joon, aca pongo todo el script ..este corresponde al archivo :

enviar.php



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title></title>

</head>

<body>

<?php

function form_mail($sPara, $sAsunto, $sTexto, $sDe)

{

$bHayFicheros = 0;

$sCabeceraTexto = "";

$sAdjuntos = "";

if ($sDe)$sCabeceras = "From:".$sDe."\n";

else $sCabeceras = "";

$sCabeceras .= "MIME-version: 1.0\n";

foreach ($_POST as $sNombre => $sValor)

$sTexto = $sTexto."\n".$sNombre." = ".$sValor;

foreach ($_FILES as $vAdjunto)

{

if ($bHayFicheros == 0)

{

$bHayFicheros = 1;

$sCabeceras .= "Content-type: multipart/mixed;";

$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

$sCabeceraTexto = "----_Separador-de-mensajes_--\n";

$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";

$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

$sTexto = $sCabeceraTexto.$sTexto;

}

if ($vAdjunto["size"] > 0)

{

$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";

$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;

$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";

$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";

$oFichero = fopen($vAdjunto["tmp_name"], 'r');

$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));

$sAdjuntos .= chunk_split(base64_encode($sContenido));

fclose($oFichero);

}

}

if ($bHayFicheros)

$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";

return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));

}

//cambiar aqui el email

if (form_mail("[email protected]", "Formulario de contacto",

"Los datos introducidos en el formulario son:\n\n", "[email protected]")) //email envio

echo "Su formulario ha sido enviado con exito <meta http-equiv='refresh' content='3; url=pag1.html' >";

?>

</body>

</html>
  #5 (permalink)  
Antiguo 24/01/2013, 10:04
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Mensaje de ok de envio de formulario

yo lo haria algo asi :)

Código PHP:
Ver original
  1. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" name="prueba" method="post">
  2.     //form
  3. </form>
  4. <?php
  5. //codigo buscador
  6. if(isset($_POST['prueba'])){
  7. if (form_mail("[email protected]", "Formulario de contacto",
  8.  
  9. "Los datos introducidos en el formulario son:\n\n", "[email protected]")) //email envio
  10.  
  11. echo "Su formulario ha sido enviado con exito";
  12. }
  13. ?>
Ese seria una de las maneras de hacerlo

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #6 (permalink)  
Antiguo 24/01/2013, 10:14
 
Fecha de Ingreso: enero-2013
Ubicación: Quilmes
Mensajes: 10
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Mensaje de ok de envio de formulario

ok Jonni, a ver si entiendo ...lo que vos me sugeris va en remplazo de esto ?

//cambiar aqui el email

if (form_mail("[email protected]", "Formulario de contacto",

"Los datos introducidos en el formulario son:\n\n", "[email protected]")) //email envio

echo "Su formulario ha sido enviado con exito <meta http-equiv='refresh' content='3; url=pag1.html' >";
  #7 (permalink)  
Antiguo 24/01/2013, 10:15
 
Fecha de Ingreso: enero-2013
Ubicación: Quilmes
Mensajes: 10
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Mensaje de ok de envio de formulario

Cita:
Iniciado por maycolalvarez Ver Mensaje
el detalle es que al hacer una petición tradicional, se recarga la página, tiene 2 opciones:

- enviar la petición por AJAX

- usar un iframe oculto como target del form, de modo que la respuesta aparece en el iframe sin recargar la página principal, pudiendo embeber un Javascript alert con el mensaje, básicamente esta es una forma rudimentaria de AJAX, como alternativa si no tiene dominio sobre el tema de AJAX



ok gracias .......
  #8 (permalink)  
Antiguo 24/01/2013, 10:19
 
Fecha de Ingreso: julio-2012
Ubicación: Bogotá
Mensajes: 16
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Mensaje de ok de envio de formulario

Si bien entiendo te podría servir un alert:

echo "<script>alert('El mensaje ha sido enviado correctamete!')</script>";
echo "<script>location.href='www.tupagina.com/ejemplo.php'</script>";


Ya tu eres quién le da la ubicación al principio/medio/final del documento.

Espero te sirva ;)

Saludos!
  #9 (permalink)  
Antiguo 24/01/2013, 10:33
 
Fecha de Ingreso: enero-2013
Ubicación: Quilmes
Mensajes: 10
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Mensaje de ok de envio de formulario

Cita:
Iniciado por cristhmz6 Ver Mensaje
Si bien entiendo te podría servir un alert:

echo "<script>alert('El mensaje ha sido enviado correctamete!')</script>";
echo "<script>location.href='www.tupagina.com/ejemplo.php'</script>";


Ya tu eres quién le da la ubicación al principio/medio/final del documento.

Espero te sirva ;)

Saludos!



ok Cris le fue barbaro!!! lo unico que me aparece que el mensaje fue enviado con exito en el fondo la pantalla en gris.....hal alguna forma de que el alert lo haga en la misma pagina ?? disculpar mi ignorancia todavia con esto....
  #10 (permalink)  
Antiguo 24/01/2013, 10:51
 
Fecha de Ingreso: julio-2012
Ubicación: Bogotá
Mensajes: 16
Antigüedad: 11 años, 8 meses
Puntos: 0
Sonrisa Respuesta: Mensaje de ok de envio de formulario

Cita:
Iniciado por elmesiasahora Ver Mensaje
ok Cris le fue barbaro!!! lo unico que me aparece que el mensaje fue enviado con exito en el fondo la pantalla en gris.....hal alguna forma de que el alert lo haga en la misma pagina ?? disculpar mi ignorancia todavia con esto....
No te preocupes, para eso estamos! para aprender

Humm no te entiendo bien, y si reemplazas:

Código PHP:
echo "Su formulario ha sido enviado con exito <meta http-equiv='refresh' content='3; url=pag1.html' >"
por
echo "<script>alert('El mensaje ha sido enviado correctamete!')</script>";

te funciona como deseas? qué función cumple pag1.html?
  #11 (permalink)  
Antiguo 24/01/2013, 14:16
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Mensaje de ok de envio de formulario

Cita:
Iniciado por elmesiasahora Ver Mensaje
ok Cris le fue barbaro!!! lo unico que me aparece que el mensaje fue enviado con exito en el fondo la pantalla en gris.....hal alguna forma de que el alert lo haga en la misma pagina ?? disculpar mi ignorancia todavia con esto....
ya indiqué anteriormente que debido a la recarga de la página, la misma se reinicia, de igual forma algunos navegadores implementan el alert de forma diferente, por el cual puede aparecer un sombreado al fondo, aunque todos son Modales, la idea sería usar AJAX y un tipo de sexylightbox o ventana emulada NO modal.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #12 (permalink)  
Antiguo 24/01/2013, 14:43
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Mensaje de ok de envio de formulario

Cita:
Iniciado por elmesiasahora Ver Mensaje
ok Jonni, a ver si entiendo ...lo que vos me sugeris va en remplazo de esto ?

//cambiar aqui el email

if (form_mail("[email protected]", "Formulario de contacto",

"Los datos introducidos en el formulario son:\n\n", "[email protected]")) //email envio

echo "Su formulario ha sido enviado con exito <meta http-equiv='refresh' content='3; url=pag1.html' >";
Perdon no habia visto que habian llegado mensajes

Primero quiero que me saques de una duda, el proceso del envio del formulario y el envio del correo se hacen en dos partes?? es decir el formulario esta en una pagina y el codigo que envia el correo esta en otra??

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.

Etiquetas: formulario, html, mensaje
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 17:01.