Foros del Web » Programando para Internet » Javascript » Frameworks JS »

formulario para recomendar web con llamado Ajax

Estas en el tema de formulario para recomendar web con llamado Ajax en el foro de Frameworks JS en Foros del Web. Hola a toda la comunidad! Tengo un sencillo formulario para recomendar una pagina web, mediante el metodo POST. Este envio se realizaba muy bien, al ...
  #1 (permalink)  
Antiguo 29/03/2010, 19:14
 
Fecha de Ingreso: marzo-2010
Mensajes: 49
Antigüedad: 14 años, 1 mes
Puntos: 0
De acuerdo formulario para recomendar web con llamado Ajax

Hola a toda la comunidad!

Tengo un sencillo formulario para recomendar una pagina web, mediante el metodo POST. Este envio se realizaba muy bien, al hacer el llamado al PHP redireccionaba la página.y todo muy bien... Pero ahora quiero elimiar esa opcion de redireccionar la página desde el php..y lo que quiero es que salga un mensaje de aviso de cargando y luego de mensaje enviado. Esto lo estoy haciendo con Ajax...al poner el codigo funciona bien el llamado pero la peticion no llega al correo.

Les solicito sus ayuda para resolver este problema....

El script utilizado es:
Código:
<script src="js/jquery-1.3.2.min_recomendar.js" type="text/javascript"></script>	
<script>
$(document).ready(function(){
	$("#enlaceajax").click(function(evento){
		evento.preventDefault();
		$("#cargando").css("display", "inline");
		$("#destino").load("php/recomendar.php", function(){
			$("#cargando").css("display", "none");
		});
	});
})
</script>
Formulario en html para enviar la peticion.

Código HTML:
<form  id="recomendar" action="php/recomendar.php" method="post">

mi nombre:
<input name="nombre" id="nombre" type="text" class="text" size="15" value="" />
escriba su correo:
<input name="remitente" id="email" type="text" class="text required email" size="25" value="" />
Ecriba el correo de su amigo:
<input name="destinatario" type="text" class="text required email" size="25" value="" />

///aca viene la DIV del Ajax ///
<a href="#" id="enlaceajax">
<input type="submit" class="submit" name="submit" value="Recomendar" /> </a>

<div id="cargando" >Enviando...</div> //// Este es el mensaje al hacer click
<div id="destino"> </div>

</form> 
Ahora les presento el .PHP ( recomendar.php)

Código PHP:
<?php
$destinatario 
$_POST['destinatario'];
$remitente $_POST['email'];
$nombre $_POST['nombre'];
$mensaje $_POST['mensaje'];

$message "
Hola  "
.$nombre."
visita la siguiente pagina link: www.dominio.com "
.$mensaje."";

mail($destinatario,"Un amigo te recomienda que visites una pagina web",$message"From: $remitente");

sleep(3);
echo (
"Gracias por recomendarnos...");
?>

El PHP que me funciona bien es el siguiente (pero este redirecciona la pagina web) :

Código PHP:
<?php
$destinatario 
$_POST['destinatario'];
$remitente $_POST['email'];
$nombre $_POST['nombre'];
$mensaje $_POST['mensaje'];

$thank="amigo_enviado.html";

$message "
Hola  "
.$nombre."
visita la siguiente pagina link: www.dominio.com "
.$mensaje."";

mail($destinatario,"Un amigo te recomienda que visites una pagina web",$message"From: $remitente");

Header ("Location: $thank");
?>
Les agradezco de antemano su ayuda,
  #2 (permalink)  
Antiguo 29/03/2010, 19:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: formulario para recomendar web con llamado Ajax

Si el mail no trae algún error, entonces está cumpliendo con su función de enviar toda la información al SMTP. Verifica que esté enviando los valores correctos al SMTP.. Usa var_dump para que veas los valores almacenados.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 29/03/2010, 19:57
 
Fecha de Ingreso: diciembre-2006
Ubicación: Peruvian
Mensajes: 142
Antigüedad: 17 años, 4 meses
Puntos: 7
Respuesta: formulario para recomendar web con llamado Ajax

Nose si me equivoco pero el metodo .load() de jquery, si bien sirver para hacer peticiones ajax lo estas haciendo sin los parametros de los campos del formulario.
Código Javascript:
Ver original
  1. load(url,parametros,callback) :
Código Javascript:
Ver original
  1. $("#IDdestino").load("test.php", { 'nombres[]': ["fulano", "sutano"] } );
Hace tiempo uso un plugin para jquery que evita estar concatenando todos los campos del formularios. -->http://malsup.com/jquery/form/
Por mas que el formularios tenga 100 campos no sera necesario concaternalos para mandarlos como parametro.
un ejemplo:
Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <script type="text/javascript" src="jquery-1.3.2.min.js"></script>
  4. <script type="text/javascript" src="jquery.form.js"></script>
  5.     <script type="text/javascript">
  6.  
  7. $(document).ready(function() {            
  8. var options = {
  9.     target:     '#divToUpdate',
  10.     //url:        'test.php', // para sobreescribir el atributo action="comment.php" del form
  11.      type:      'post',   //'get' o 'post',,
  12.     //cache: false,
  13.     //scriptCharset: 'UTF-8', // solo para jsonp script y get
  14.     success:    function(e) {
  15.         $('#divToUpdate').html(e);        
  16.     },
  17.     beforeSend: function() {        
  18.         $('#divToUpdate').html("<p>enviando</p>");     
  19.     },
  20.     error: function(e){
  21.         $('#divToUpdate').html("<b>error: </b>"+e);
  22.     }  
  23. };
  24.  
  25.   $('#myForm').submit(function() {  
  26.     $(this).ajaxSubmit(options);
  27.     // return false para prevenir el submit normal del formulario
  28.     return false;
  29.  });
  30.  
  31. });
  32. </script>
  33. </head>
  34. <body>
  35. <form id="myForm" action="comment.php" method="post">&#160;
  36.  
  37. Name: <input type="text" name="name" /><br />&#160;
  38. Appd:&#160;<input type="text" name="app" /><br />
  39. Email:&#160;<input type="text" name="email" /><br />
  40. Comm: </p><textarea name="comment">ghjghjghj</textarea>&#160;<br />
  41. sexo:&#160;<input type="radio" name="sexo" />
  42. <input type="radio" name="sexo" /><br />
  43. gay?: <input type="checkbox" name="gay" /><br />         
  44. <input type="submit" id="boton" value="Submit Comment" />
  45. </form>
  46. <div id="lol">
  47. here
  48. </div>
  49.  
  50. <div id = "divToUpdate">aqui la respuesta ajax:</div>
  51. </body>
  52. </html>

saludos..
  #4 (permalink)  
Antiguo 30/03/2010, 08:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Tema movido desde PHP a AJAX
  #5 (permalink)  
Antiguo 30/03/2010, 11:38
 
Fecha de Ingreso: marzo-2010
Mensajes: 49
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: formulario para recomendar web con llamado Ajax

aun no tengo resuelto el problema.... en el llamado del Ajax, esta la ruta del PHP que ejecuta la accion pero en el formulario tambien esta el Action del PHP no influye que este en el formulario y que luego lo llame el Ajax??? el formulario en el HTML esta bueno...si lo utilizo con el ultimo php que redirecciona al ejecutar la accion...PERO YO NO QUIERO QUE SE REDIRECCIONE LA PAGINA ASI que decidi agregarle el ajax..para que al ejecutarse el PHP aparezca debajo del formulario un mensaje de gracias por recomendarnos.....

Al aplicarlo....y hacer click con el ajax..aparece los mensajes pertienentes.."gracias por recomendarnos." lo que me hace pensar que envio la solicitud...pero esa solicitud nunca llego al correo....que tengo malo !!!!

solicito su ayuda...

Gracias a todos nuevamente

Etiquetas: ajax, correo, enviar, recomendar, 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 06:50.