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

[SOLUCIONADO] Simple Formulario Ajax Error

Estas en el tema de Simple Formulario Ajax Error en el foro de Frameworks JS en Foros del Web. Hola Amigos, cuanto tiempo. Parece que cada vez tenia menos fallo pero me he bloqueado con algo aparentemente sencillo. Un Formulario (form) sencillo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 16/11/2014, 06:34
 
Fecha de Ingreso: septiembre-2012
Mensajes: 149
Antigüedad: 12 años, 2 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...
  #2 (permalink)  
Antiguo 16/11/2014, 17:08
 
Fecha de Ingreso: septiembre-2012
Mensajes: 149
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Simple Formulario Ajax Error

Vale entre unos cuantos fallos estúpidos, el más evidente y que no encontraba era el siguiente:

No devolvía desde .php la variable "msg" que me pide el .js.

Cerrar Tema.

Etiquetas: ajax, 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 10:00.