Foros del Web » Programando para Internet » PHP »

No consigo que formulario para envio de correo se abra en la página de llamada

Estas en el tema de No consigo que formulario para envio de correo se abra en la página de llamada en el foro de PHP en Foros del Web. Hola a tod@s, Puse este pedido de ayuda bajo este tema porque estoy usando Php Mailer para envío de correo. y necesito ayuda para salir ...
  #1 (permalink)  
Antiguo 25/06/2014, 15:53
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 2 meses
Puntos: 1
No consigo que formulario para envio de correo se abra en la página de llamada

Hola a tod@s,

Puse este pedido de ayuda bajo este tema porque estoy usando Php Mailer para envío de correo. y necesito ayuda para salir del problema en que caí:

Tengo un formulario de correo en un archivo Php ("Form_Noticias.php") pues recibo dos variables por GET bajo la forma:

Código PHP:
Ver original
  1. <input type="hidden" name-"titulo" value=<? php echo $_GET["titulo"];?>>

El archivo de formulario es llamado al dar click en una imagen que activa y presenta en pantalla el formulario para ser llenado por el usuario (el archivo de llamada es "News_01.html" y la llamada la hago en esta línea:

Código HTML:
Ver original
  1. <div id="Imagen_Email"><a href = "Form_Noticias.php" id = "enlace"></a></div>

El problema es que cada vez que quiero enviar un correo el archivo de formulario se abre en la misma pestaña y reemplazado la hoja "News_01.html", además de ocupar la pantalla completa... Cómo puedo hacer para que "Form_Noticias.php" se abra como ventana flotante sin sobreponerse/reemplazar la hoja desde el que lo llamo?

Ojalá me pueda ayudar, ya he intentado varias cosas que no han funcionado:

1.- Grabé "Form_Noticias.php" con la extensión "html" y configuré mi servidor local para que ejecute código Php en archivos con extensión html... (no me funcionó)

2.- He hecho uso (probablemente mal) de " target="_self" y " target="_blank" en la etiqueta href... (no me funcionó)

3.- también probé con el uso de (window.top.location.href = )... tampoco me funcionó...

Gracias.
  #2 (permalink)  
Antiguo 25/06/2014, 17:02
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: No consigo que formulario para envio de correo se abra en la página de lla

con target="_blank" no deberias tener ningun problema, para que se habra en una nueva pestaña.
Código HTML:
Ver original
  1. <a href="./mipagina.html" target="_blank">Este enlace se muestra en una nueva pestaña del navegador</a>
  #3 (permalink)  
Antiguo 25/06/2014, 17:58
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: No consigo que formulario para envio de correo se abra en la página de lla

Gracias por tu dispocisión a ayudar Xerifandtomas, y, sí lo que me dices es una de las opciones que he probado... pero nada.

Enla imagen siguiente puedes ver que en la primera pestanha tengo la hoja "MujInd_AL_New_01_ESP.htm" desde la que llamo al formulario de correo (en la segunda pestanha tengo el sitio de ForosdelWeb como referencia)



y aquí, la línea con el href asociado a la imagen para envío de email:

Código HTML:
Ver original
  1. <div id="Imagen_Email"><a href = "./Form_Noticias.html" target="_blank" id = "enlace"></a></div>

y aquí, la imagen de lo que obtengo al llamar el formulario:



Puedes ver que ahora mi primera pestanha fue reemplazada por el archivo del formulario y lo que necesito es que ésta última se abra como ventana flotante (del tamanho necesario para ingresar los datos del correo nada más) en "MujInd_AL_New_01_ESP.htm" (habilitado para ejecutar instrucciones PHP)

Seguiré intentando y gracias de nuevo.
  #4 (permalink)  
Antiguo 25/06/2014, 18:27
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: No consigo que formulario para envio de correo se abra en la página de lla

prueba con blank en lugar de _blank

mediante js tambien lo puedes intentar

Código Javascript:
Ver original
  1. <a href="#" onClick="window.open('./ruta_archivo.php','ventana1','width=650,height=600,scrollbars=1')">nueva ventana</a>


cierra y abre el navegador, algunas veces cuando mandas a otra pestaña y en esta otra pestaña intentas volver a abrir una nueva se actualiza la misma en vez de habrir otra mas. no se si me explico
  #5 (permalink)  
Antiguo 25/06/2014, 22:53
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: No consigo que formulario para envio de correo se abra en la página de lla

No es tan simple como crear un enlace y asignar un target (atributo considerado obsoleto); requieres un poco de conocimientos de CSS y AJAX para lograr tu objetivo.

Ejemplo de ventana modal: http://www.scriptiny.com/2008/04/cus...-dialog-boxes/

Para tratar de aprender AJAX, te sugiero esta búsqueda: https://www.google.com.mx/#q=site:fo...+tutorial+ajax
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 27/06/2014, 10:30
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: No consigo que formulario para envio de correo se abra en la página de lla

Gracias a los dos amigos que se dieron el tiempo para responder a lo que necesitaba pude resolver mi problema, no fue directo pero me dieron con que trabajar. Finalmente se resolvió como sigue:

La línea con el href asociado a la imagen para envío de email en la página "MujInd_AL_New_01_ESP.htm" que llama al formulario qued{o casi sin cambios:

Código HTML:
Ver original
  1. <div id="Imagen_Email"><a href = "Form_Noticias.html" id = "enlace"></a></div>

Que utilizo luego en el siguiente Script y en la misma página:

Código Javascript:
Ver original
  1. var enlace = document.getElementById("enlace"),
  2.  
  3.     destino = enlace.getAttribute("href"),
  4.  
  5.     titulo = document.getElementById("TextTitleInside").innerHTML;
  6.  
  7.  
  8.     String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g,'') }
  9.  
  10.      titulo = titulo.trim();
  11.  
  12.     text_msg = "<a HREF='http://www.unsitio.org/'>" +  titulo + "</a>";
  13.    
  14.     enlace.addEventListener("click", function(e){
  15.  
  16.     e.preventDefault();
  17.  
  18. // tenía esta línea que no me funcionaba
  19. // window.location = destino + "?text_msg=" + '" ' + text_msg + '" ' + "&titulo=" + '" ' + titulo + '" ';
  20.  
  21. // La cambié por esta..
  22.    window.open(destino + "?text_msg=" + '" ' + text_msg + '" ' + "&titulo=" + '" ' + titulo + '" ', "ventana1", "width=350,height=470");
  23.  
  24.  
  25.  
  26. }, false);  
  27.  
  28. //}
  29.  
  30. </script>

Recibo variables en el formulario ... (Form_Noticias.html)

Código PHP:
Ver original
  1. <FORM method="post" action="http://localhost/MyEmail/send-email.php" name="form_enviar">
  2.  
  3. <input type="hidden" name="titulo" value=<?php echo $_GET["titulo"];?>>
  4.  
  5. <input type="hidden" name="text_msg" value=<?php echo $_GET["text_msg"];?>>

Con submit para enviar el correo... y recibir confirmación de envío final desde "send-email.html
(extracto)

Código PHP:
Ver original
  1. $exito = $mail->Send();
  2.  
  3. $intentos=1;
  4.  
  5. while ((!$exito) && ($intentos < 5)) {  sleep(5);
  6.  
  7. $exito = $mail->Send();
  8.  
  9. $intentos=$intentos+1;
  10.  
  11. }
  12.  
  13. if(!$exito) {
  14.  
  15. echo "Problemas enviando correo electrónico a ";
  16.  
  17. echo "<br/>".$mail->ErrorInfo;
  18.  
  19. }
  20.  
  21. else {
  22.  
  23. echo "Mensaje enviado correctamente","<br><br>";
  24.  
  25. echo '<script type="text/javascript">setTimeout(function(){window.close();},2000);</script>';  
  26. }
  27.  
  28. ?>

Bueno, gracias por su ayuda y ahora ya seguiré intentando conseguir que la ventana formulario se muestre sin barra de dirección... sólo el disenho del formulario.

Etiquetas: correo, formulario, html, llamada, página, variable
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:46.