Foros del Web » Programando para Internet » PHP »

mensaje de "Email enviado correctamente".

Estas en el tema de mensaje de "Email enviado correctamente". en el foro de PHP en Foros del Web. Hago llamado desde aplicacion de la siguiente forma: <a href="enviar_email.php?fol=<? echo $folio; ?> &glosa=<? echo $glosa;?>" target="popup" onClick="window.open(this.href, this.target, 'width=300, height=300'); return false;"> <? echo ...
  #1 (permalink)  
Antiguo 13/09/2006, 14:42
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
mensaje de "Email enviado correctamente".

Hago llamado desde aplicacion de la siguiente forma:

<a href="enviar_email.php?fol=<? echo $folio; ?>
&glosa=<? echo $glosa;?>"
target="popup" onClick="window.open(this.href,
this.target, 'width=300, height=300');
return false;">
<? echo "<img src='imagenes/email.gif'
width=25 height=25 border=0
alt='Enviar a su casilla de correo interno'>
</a>

enviar_email.php
----------------
<?
//captura del buffer de salida de php
ob_start();
ob_implicit_flush(0);
$folio=$_REQUEST['fol'];
$glosa=$_REQUEST['glosa'];
//llamo al script email_folio.php pasando el folio del servicio.
include("http://queule/servicios/email_folio.php?fol=$folio");
//tomo lo que guardo el buffer y lo almaceno en una variable.
$cuerpo_mail=ob_get_contents();
//vacio buffer y lo cierro.
ob_end_clean();
//ahora genero mail.
//Cuenta que envia
$sfrom="[email protected]";
$sdestinatario="[email protected]";
$ssubject="Requerimiento concluido:"." ".$glosa;
$sheader="From:".$sfrom."\nReply-to:".$sfrom."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
mail($sdestinatario,$ssubject,$cuerpo_mail,$sheade r);
?>

Puse el siguiente script al final de php:
<script languaje="Javascript">
alert("Email, enviado correctamente");
</script>

Pero me muestra la ventana y el mensaje.

Puse codigo html al final de php:
<html>
<head>
<title>Envio de Email</title>
</head>
<body>
<table>
<tr>
<td>
E-mail enviado correctamente
</td>
</tr>
<tr>
<td >
<input type=button value='Cerrar' Onclick='window.close()'>
</td>
</tr>
</table>
</body>
</html>

Me muestra el mensaje que deseo, pero lo incomodo es cerrar la venatana.

¿Como hacer que solo me muestre el mensaje sin que muestre otra ventana ?
  #2 (permalink)  
Antiguo 13/09/2006, 15:06
 
Fecha de Ingreso: julio-2005
Mensajes: 220
Antigüedad: 18 años, 8 meses
Puntos: 0
Cita:
Iniciado por [email protected] Ver Mensaje
if (mail($sdestinatario,$ssubject,$cuerpo_mail,$shead er))
echo "<p>Mensaje enviado correctamente</p>";
else echo "<p>Mensaje NO enviado</p>";
?>
Espero que te valga.
  #3 (permalink)  
Antiguo 13/09/2006, 15:25
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
No es precisamente lo que necesito.

Quiero evitarme que mensaje salga dentro de ventana, lo que deseo es mesaje fuera de este...
Pero de antemano GRACIAS
  #4 (permalink)  
Antiguo 13/09/2006, 15:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ese "alert" no deberías de presentarlo en el script que hace el proceso sino en el script/página que lo lanza ..

Es decir .. el proceso sería:

En tu "aplicación" .. donde tienes tu link hacia enviar_email.php

Código PHP:
<?
if ($_GET['msg'] == "OK"){
// o muestras un mensaje en alguna parte de la página ..
echo "el e-mail se envió OK";
}
?>
O llamas a tu javascript para tu "alert()" .. pero en ese caso, pon esta validación al final casi de tu código HTML (de tu </body>) para que se "cargue la página" y al instante se llame a tu "alert()" .. sino, veras la página en "blanco" y el alert() encima .. aceptas y se "redibuja la página" .. (Esto con javascript y un evento "onLoad()" en el body() quedaría mejor ..)


Y tu script de proceso PHP (enviar_email.php)

enviar_email.php

Código PHP:
<?
// tu código ... 
if (mail(............)){
   
header ("Location: aplicacion.php?msg=OK");
   exit;
} else {
   
header ("Location: aplicacion.php?msg=fallo");
   exit;
}
?>
Si te fijas .. al terminar el proceso, .. redirecciono a tu "aplicación" .. NO se levanta ninguna ventana (no deberías en este caso). Por supuesto se recarga la página "padre" (así que si tienes "formularios" por médio .. eso sería un problema que se puede resolver ..).

Si aún así quieres abrir tu ventana y mostrar tu alert? .. mejor usaría yo un frame/iframe oculto para realizar el proceso .. el "alert" lanzado en ese "frame" oculto se verá sobre el "frame-set" (todo esto son más bien "problemas de HTML/javascript" que no de PHP . .tu sólo tienes que tener claro donde "mandas" a ejecutar tu proceso y saber que el frame/iframe o ventana que escojas ahí quedará el proceso al finalizar PHP).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 14:04.