Foros del Web » Programando para Internet » PHP »

echo en la misma pagina

Estas en el tema de echo en la misma pagina en el foro de PHP en Foros del Web. Muy buenas a todo el foro, tengo una pequeña duda que seguramente la sepáis resolver en cuestión de segundos, pero yo no encuentro la forma ...
  #1 (permalink)  
Antiguo 20/08/2012, 12:10
Avatar de ermuni  
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
echo en la misma pagina

Muy buenas a todo el foro, tengo una pequeña duda que seguramente la sepáis resolver en cuestión de segundos, pero yo no encuentro la forma de solucionar ya que no se si estoy haciendo la pregunta de forma correcta.

Os comento, tengo un formulario de contacto muy muy simple, pido nombre, email y que se escriba una consulta.

Mi problema es el siguiente, quiero que cuando se envié el formulario el mensaje "El mensaje se ha enviado con éxito. Muchas Gracias." aparezca en la misma pagina, no que se redirija a la pagina de validación y por lo tanto se abra una nueva en blanco y con ese mensaje. no se si me explico bien. Es decir no se si se puede hacer por capas o algo así.

Mi idea es que ocurra lo mismo que pasa con el plugin de wordpress contact form 7, es decir, cuando se envía el formulario aparece (no se si es un script) el mensaje de verificación de envío en la misma pagina y no en otra.

Os pongo el código de la validación.php

Código PHP:
<?php
$txtnombre 
$_POST['Nombre'];
$txtemail $_POST['Email'];
$txtmensaje $_POST['Mensaje'];


$header 'From: ' .$_POST['txtemail']. " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje "Este mensaje fue enviado por " $_POST['txtnombre'] .  "a través del formulario de contacto. \n Contenido del mensaje:" .$_POST['txtmensaje'] . " \n";
$mensaje .= "Su e-mail es: " .$_POST['txtemail']. " \n";
$mensaje .= "Enviado el " date('d/m/Y'time());

$para '[email protected]';
$asunto 'Cotacto web Hotel';

mail($para$asuntoutf8_decode($mensaje), $header);


echo 
"El mensaje se ha enviado con éxito. Muchas Gracias."  
?>
Gracias y os agradezco que me ayudéis.
  #2 (permalink)  
Antiguo 20/08/2012, 12:12
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: echo en la misma pagina

Creo que lo que quieres se hace con ajax (digo creo por que no estoy seguro de haber entendido tu pregunta). Te sugiero investigar sobre el tema.
  #3 (permalink)  
Antiguo 20/08/2012, 12:39
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 3 meses
Puntos: 155
Respuesta: echo en la misma pagina

http://www.w3schools.com/jsref/met_win_alert.asp
http://www.w3schools.com/jsref/obj_location.asp

los puedes imprimir con php
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #4 (permalink)  
Antiguo 20/08/2012, 13:18
 
Fecha de Ingreso: agosto-2012
Mensajes: 12
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: echo en la misma pagina

Cita:
Iniciado por ermuni Ver Mensaje
Muy buenas a todo el foro, tengo una pequeña duda que seguramente la sepáis resolver en cuestión de segundos, pero yo no encuentro la forma de solucionar ya que no se si estoy haciendo la pregunta de forma correcta.

Os comento, tengo un formulario de contacto muy muy simple, pido nombre, email y que se escriba una consulta.

Mi problema es el siguiente, quiero que cuando se envié el formulario el mensaje "El mensaje se ha enviado con éxito. Muchas Gracias." aparezca en la misma pagina, no que se redirija a la pagina de validación y por lo tanto se abra una nueva en blanco y con ese mensaje. no se si me explico bien. Es decir no se si se puede hacer por capas o algo así.

Mi idea es que ocurra lo mismo que pasa con el plugin de wordpress contact form 7, es decir, cuando se envía el formulario aparece (no se si es un script) el mensaje de verificación de envío en la misma pagina y no en otra.

Os pongo el código de la validación.php

Código PHP:
<?php
$txtnombre 
$_POST['Nombre'];
$txtemail $_POST['Email'];
$txtmensaje $_POST['Mensaje'];


$header 'From: ' .$_POST['txtemail']. " \r\n";
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje "Este mensaje fue enviado por " $_POST['txtnombre'] .  "a través del formulario de contacto. \n Contenido del mensaje:" .$_POST['txtmensaje'] . " \n";
$mensaje .= "Su e-mail es: " .$_POST['txtemail']. " \n";
$mensaje .= "Enviado el " date('d/m/Y'time());

$para '[email protected]';
$asunto 'Cotacto web Hotel';

mail($para$asuntoutf8_decode($mensaje), $header);


echo 
"El mensaje se ha enviado con éxito. Muchas Gracias."  
?>
Gracias y os agradezco que me ayudéis.
podrias hacerlo con session.
por lo que entiendo quieres enviar ese mensaje de enviado en la misma pagina del contacto tendria que ser algo como esto en el mismo archivo de contacto

Código PHP:
session_start();
$_SESSION['msg_validacion'] = "tu mensaje";
header('Location: contacto.php'); //aqui va la vista del contacto 
y en la vista dle ocntacto tendria que ir esto
Código PHP:

session_start
();
if(isset(
$_SESSION['msg_validacion']) && $_SESSION['msg_validacion'] != null//validamos que la variable exista y no este vacia
          
echo $_SESSION['msg_validacion']; 
eso entendi saludos!
  #5 (permalink)  
Antiguo 20/08/2012, 14:01
Avatar de ermuni  
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: echo en la misma pagina

ummm gracias gonzalezm_alexis pero mis conocimientos de php son cortitos, y no se donde tengo que poner eso :S
  #6 (permalink)  
Antiguo 20/08/2012, 14:14
Avatar de flashmax  
Fecha de Ingreso: julio-2012
Ubicación: Bs.As. Argentina
Mensajes: 507
Antigüedad: 11 años, 9 meses
Puntos: 86
Respuesta: echo en la misma pagina

has probado cargar tu formulario en un iframe:

Código:
<iframe src="http://www.tupagina.com/formulario.php"></iframe>
  #7 (permalink)  
Antiguo 20/08/2012, 14:27
 
Fecha de Ingreso: agosto-2012
Mensajes: 12
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: echo en la misma pagina

Cita:
Iniciado por ermuni Ver Mensaje
ummm gracias gonzalezm_alexis pero mis conocimientos de php son cortitos, y no se donde tengo que poner eso :S
Código PHP:
<?php 
$txtnombre 
$_POST['Nombre']; 
$txtemail $_POST['Email']; 
$txtmensaje $_POST['Mensaje']; 


$header 'From: ' .$_POST['txtemail']. " \r\n"
$header .= "X-Mailer: PHP/" phpversion() . " \r\n"
$header .= "Mime-Version: 1.0 \r\n"
$header .= "Content-Type: text/plain"

$mensaje "Este mensaje fue enviado por " $_POST['txtnombre'] .  "a través del formulario de contacto. \n Contenido del mensaje:" .$_POST['txtmensaje'] . " \n"
$mensaje .= "Su e-mail es: " .$_POST['txtemail']. " \n"
$mensaje .= "Enviado el " date('d/m/Y'time()); 

$para '[email protected]'
$asunto 'Cotacto web Hotel'

mail($para$asuntoutf8_decode($mensaje), $header); 

session_start();
$_SESSION['msg_validacion'] =  "El mensaje se ha enviado con éxito. Muchas Gracias."  ;
header('Location: contacto.php'); //este te redirige a tu pagina de contacto ponle la ruta correcta del archivo, es importante que no haya ningun texto impreso antes del header();

?>
y en tu pagina de contacto en la parte que quieras imprimir el mensaje pones esto

Código PHP:
<?php
session_start
(); 
if(isset(
$_SESSION['msg_validacion']) && $_SESSION['msg_validacion'] != null//validamos que la variable exista y no este vacia 
          
echo $_SESSION['msg_validacion'];
?>
si necesitas mas ayuda siempre google es una buena fuente ;)

saludos
  #8 (permalink)  
Antiguo 20/08/2012, 14:45
Avatar de ermuni  
Fecha de Ingreso: noviembre-2010
Mensajes: 33
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: echo en la misma pagina

Cita:
Iniciado por gonzalezm_alexis Ver Mensaje
Código PHP:
<?php 
$txtnombre 
$_POST['Nombre']; 
$txtemail $_POST['Email']; 
$txtmensaje $_POST['Mensaje']; 


$header 'From: ' .$_POST['txtemail']. " \r\n"
$header .= "X-Mailer: PHP/" phpversion() . " \r\n"
$header .= "Mime-Version: 1.0 \r\n"
$header .= "Content-Type: text/plain"

$mensaje "Este mensaje fue enviado por " $_POST['txtnombre'] .  "a través del formulario de contacto. \n Contenido del mensaje:" .$_POST['txtmensaje'] . " \n"
$mensaje .= "Su e-mail es: " .$_POST['txtemail']. " \n"
$mensaje .= "Enviado el " date('d/m/Y'time()); 

$para '[email protected]'
$asunto 'Cotacto web Hotel'

mail($para$asuntoutf8_decode($mensaje), $header); 

session_start();
$_SESSION['msg_validacion'] =  "El mensaje se ha enviado con éxito. Muchas Gracias."  ;
header('Location: contacto.php'); //este te redirige a tu pagina de contacto ponle la ruta correcta del archivo, es importante que no haya ningun texto impreso antes del header();

?>
y en tu pagina de contacto en la parte que quieras imprimir el mensaje pones esto

Código PHP:
<?php
session_start
(); 
if(isset(
$_SESSION['msg_validacion']) && $_SESSION['msg_validacion'] != null//validamos que la variable exista y no este vacia 
          
echo $_SESSION['msg_validacion'];
?>
si necesitas mas ayuda siempre google es una buena fuente ;)

saludos
Creo que he cometido un fallo en la explicación, ese formulario de contacto va en un widget de wordpress, échale un vistazo http://www.hotelenriquecalvillo.com/

Por lo que
Código PHP:
('Location: contacto.php'
no se como debería ponerlo
  #9 (permalink)  
Antiguo 20/08/2012, 15:04
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años
Puntos: 34
Respuesta: echo en la misma pagina

lo que querés hacer se resuelve mediante ajax. No es taaaan complicado pero necesitas entender un poco de php y javascript. Buscá sobre ajax.
  #10 (permalink)  
Antiguo 20/08/2012, 15:09
 
Fecha de Ingreso: agosto-2012
Mensajes: 12
Antigüedad: 11 años, 8 meses
Puntos: 4
Respuesta: echo en la misma pagina

Cita:
Iniciado por ermuni Ver Mensaje
Creo que he cometido un fallo en la explicación, ese formulario de contacto va en un widget de wordpress, échale un vistazo http://www.hotelenriquecalvillo.com/

Por lo que
Código PHP:
('Location: contacto.php'
no se como debería ponerlo
muy bien eso explica muchas cosas mira en el wordpress crea un archivo .js nombralo como tu quieras y llamalo en la etiqueta <head> debajo de la llamada del jquery si es posible de los ultimos "<script>" y dentor de ese archivo copia lo siguiente

Código:
$(document).ready(function(){
    $('#f').submit(function(){
        $.ajax({
            type: 'POST',
            data: { Nombre: $('#txtnombre').val(), Email: $('#txtemail').val(),Mensaje:$('#txtmensaje').val() },
            url: 'validacion.php', //la ruta hacia donde va el ajax
            success: function(msg){
                   alert('El mensaje se ha enviado con éxito. Muchas Gracias.');
            }
        });
        (this+' input').each(function(){
            $(this).val('');
        });
        return false;
    });
});
este es un ajax esta hecho a la medida de lo que vi en el sitio con eso se deberian resolver todos tus problemas ya que al pulsar y enviarse el formulario aparecera un pop-up de alerta avisandote de que se envio el formulario eso.
saludos!

Etiquetas: echo, 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 05:14.