Un Formulario (form) sencillo:
Código HTML:
Ver original
<form action="contact_form.php" method="post" class="contactForm"> <div class="formSecWrap"> <input type="text" class="formField" title="Nombre" id="form_name" name="form_name" value="" /> <input type="text" class="formField" title="Email" name="form_email" id="form_email" value="" /> <input type="text" class="formField" title="Teléfono" name="form_phone" id="form_phone" value="" /> <input type="text" class="formField" title="Fecha & Hora" name="form_date" id="form_date" value="" /> </div> <div class="formSecWrap formSecWrap2"> </div> <input class="button" id="submit-form" type="submit" name="submit" value="Enviar Mensaje" /> </form>
Estre formulario llama .php:
Código PHP:
Ver original
<?php // Guardar los datos recibidos en variables: $nombre = $_POST['form_name']; $email = $_POST['form_email']; $telefono = $_POST['form_phone']; $date = $_POST['form_date']; $mensaje = $_POST['form_message']; // Definir el correo de destino: // Estas son cabeceras que se usan para evitar que el correo llegue a SPAM: $headers = "From: $nombre <$email>\r\n"; $headers .= "X-Mailer: PHP5\n"; $headers .= 'MIME-Version: 1.0' . "\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // Aqui definimos el asunto y armamos el cuerpo del mensaje $asunto = "Contacto"; $cuerpo = "Nombre: ".$nombre."<br>"; $cuerpo .= "Email: ".$email."<br>"; $cuerpo .= "Telefono: ".$telefono."<br>"; $cuerpo .= "Fecha: ".$date."<br>"; $cuerpo .= "Mensaje: ".$mensaje; // Esta es una pequena validación, que solo envie el correo si todas las variables tiene algo de contenido: if($nombre != '' && $email != '' && $telefono != '' && $date != '' && $mensaje != ''){ } ?>
.Js AJAX: Valida y Muestra Mensaje en un Div.
Código Javascript:
Ver original
(function($){ $(document).ready(function() { $('#submit-form').click(function(e){ e.preventDefault(); var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/; var name = $('#form_name').val(), email = $('#form_email').val(), phone = $('#form_phone').val(), date = $('#form_date').val(), message = $('#form_message').val(), data_html, success = $('#success'); if(name == "") $('#form_name').val('Por favor introduzca su nombre.'); if(phone == "") $('#form_phone').val('Por favor introduzca su teléfono.'); if(date == "") $('#form_date').val('Introduzca un día y una fecha.'); if(email == ""){ $('#form_email').val('Es necesario un correo elctrónico.'); }else if(reg.test(email) == false){ $('#form_email').val('Correo Electrónico Invalido.'); } if(message == "") $('#form_message').val('Es necesario un mensaje.'); if(message != "" && name != "" && reg.test(email) != false) { data_html = "name=" + name + "&email="+ email + "&message=" + message + "&phone="+ phone + "&date="+ date; success.html('<div class="alert alert-success">mensaje en camino!</div>') ; //alert(data_html); $.ajax({ type: 'POST', url: 'contact_form.php', data: data_html, success: function(msg){ if (msg == 'sent'){ success.html('<div class="alert alert-success">Mensaje <strong>successfully</strong> enviado!</div>') ; $('#form_name').val(''); $('#form_phone').val(''); $('#form_email').val(''); $('#form_date').val(''); $('#form_message').val(''); }else{ success.html('<div class="alert alert-error">Mensaje <strong>no</strong> enviado! Intentelo de nuevo!</div>') ; } } }); } return false; }); }); })(jQuery);
En principio todo es muy simple, pero no veo el error...