Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/11/2014, 06:34
Pajaranny
 
Fecha de Ingreso: septiembre-2012
Mensajes: 149
Antigüedad: 11 años, 7 meses
Puntos: 3
Simple Formulario Ajax Error

Hola Amigos, cuanto tiempo. Parece que cada vez tenia menos fallo pero me he bloqueado con algo aparentemente sencillo.

Un Formulario (form) sencillo:

Código HTML:
Ver original
  1. <form action="contact_form.php" method="post" class="contactForm">
  2.                         <div class="formSecWrap">
  3.                             <input type="text" class="formField" title="Nombre" id="form_name" name="form_name" value="" />
  4.                             <input type="text" class="formField" title="Email" name="form_email" id="form_email" value="" />
  5.                             <input type="text" class="formField" title="Tel&eacute;fono" name="form_phone" id="form_phone" value="" />
  6.                             <input type="text" class="formField" title="Fecha &amp; Hora" name="form_date" id="form_date" value="" />
  7.                         </div>
  8.                         <div class="formSecWrap formSecWrap2">
  9.                             <textarea class="textarea formField" title="Mensaje" name="form_message" id="form_message"></textarea>
  10.                         </div>
  11.                             <input class="button" id="submit-form" type="submit" name="submit" value="Enviar Mensaje" />
  12.                         <div id="success"></div>
  13.                     </form>


Estre formulario llama .php:

Código PHP:
Ver original
  1. <?php
  2. // Guardar los datos recibidos en variables:
  3. $nombre = $_POST['form_name'];
  4. $email = $_POST['form_email'];
  5. $telefono = $_POST['form_phone'];
  6. $date = $_POST['form_date'];
  7. $mensaje = $_POST['form_message'];
  8.  
  9. // Definir el correo de destino:
  10. $dest = "[email protected]";
  11.  
  12. // Estas son cabeceras que se usan para evitar que el correo llegue a SPAM:
  13. $headers = "From: $nombre <$email>\r\n";  
  14. $headers .= "X-Mailer: PHP5\n";
  15. $headers .= 'MIME-Version: 1.0' . "\n";
  16. $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
  17.  
  18. // Aqui definimos el asunto y armamos el cuerpo del mensaje
  19. $asunto = "Contacto";
  20. $cuerpo = "Nombre: ".$nombre."<br>";
  21. $cuerpo .= "Email: ".$email."<br>";
  22. $cuerpo .= "Telefono: ".$telefono."<br>";
  23. $cuerpo .= "Fecha: ".$date."<br>";
  24. $cuerpo .= "Mensaje: ".$mensaje;
  25.  
  26. // Esta es una pequena validación, que solo envie el correo si todas las variables tiene algo de contenido:
  27. if($nombre != '' && $email != '' && $telefono != '' && $date != '' && $mensaje != ''){
  28.     mail($dest,$asunto,$cuerpo,$headers); //ENVIAR!
  29. }
  30. ?>


.Js AJAX: Valida y Muestra Mensaje en un Div.

Código Javascript:
Ver original
  1. (function($){
  2.     $(document).ready(function() {
  3.         $('#submit-form').click(function(e){
  4.        
  5.             e.preventDefault();
  6.             var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  7.             var name     = $('#form_name').val(),
  8.                 email    = $('#form_email').val(),
  9.                 phone    = $('#form_phone').val(),
  10.                 date     = $('#form_date').val(),
  11.                 message  = $('#form_message').val(),
  12.                 data_html,
  13.                 success = $('#success');
  14.                
  15.             if(name == "")
  16.                 $('#form_name').val('Por favor introduzca su nombre.');
  17.                
  18.             if(phone == "")
  19.                 $('#form_phone').val('Por favor introduzca su tel&eacute;fono.');
  20.                
  21.             if(date == "")
  22.                 $('#form_date').val('Introduzca un d&iacute;a y una fecha.');
  23.  
  24.             if(email == ""){
  25.                 $('#form_email').val('Es necesario un correo elctr&oacute;nico.');
  26.             }else if(reg.test(email) == false){
  27.                 $('#form_email').val('Correo Electrónico Invalido.');
  28.             }
  29.            
  30.             if(message == "")
  31.                 $('#form_message').val('Es necesario un mensaje.');
  32.  
  33.             if(message != "" && name != "" && reg.test(email) != false) {
  34.                 data_html = "name=" + name + "&email="+ email + "&message=" + message + "&phone="+ phone + "&date="+ date;
  35.  
  36. success.html('<div class="alert alert-success">mensaje en camino!</div>')  ;
  37.                 //alert(data_html);
  38.                $.ajax({
  39.                     type: 'POST',
  40.                     url: 'contact_form.php',
  41.                     data: data_html,
  42.                     success: function(msg){
  43.                        
  44.                         if (msg == 'sent'){
  45.                             success.html('<div class="alert alert-success">Mensaje <strong>successfully</strong> enviado!</div>')  ;
  46.                             $('#form_name').val('');
  47.                             $('#form_phone').val('');
  48.                             $('#form_email').val('');
  49.                             $('#form_date').val('');
  50.                             $('#form_message').val('');
  51.                         }else{
  52.                             success.html('<div class="alert alert-error">Mensaje <strong>no</strong> enviado! Intentelo de nuevo!</div>')  ;
  53.                         }
  54.                     }
  55.                 });
  56.    
  57.             }
  58.             return false;
  59.         });
  60.     });
  61. })(jQuery);


En principio todo es muy simple, pero no veo el error...