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<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 class="formSecWrap formSecWrap2"> <textarea class="textarea formField" title="Mensaje" name="form_message" id="form_message"></textarea> <input class="button" id="submit-form" type="submit" name="submit" value="Enviar Mensaje" />
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 != ''){
mail($dest,$asunto,$cuerpo,$headers); //ENVIAR! }
?>
.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...