Este es mi codigo actual:
Código HTML:
<form id="contact"> <br style="clear:both"> <div class="form-group"> <input type="text" class="form-control" id="name" name="name" placeholder="Nombre *"/> <div class="help-block with-errors"></div> </div> <div class="form-group"> <input type="email" class="form-control" id="email" name="email" placeholder="Email *"/> <div class="help-block with-errors"></div> </div> <div class="form-group"> <input type="text" class="form-control" id="phone" name="phone" placeholder="Teléfono *"/> <div class="help-block with-errors"></div> </div> <div class="form-group"> <input type="text" class="form-control" id="asunto" name="subject" placeholder="Asunto"/> </div> <div class="form-group"> <textarea class="form-control" type="textarea" id="message" name="message" placeholder="Mensaje" rows="7"></textarea> </div> <div class="form-group"> <div id="msg"></div> </div> <div class="pull-left">* Estos campos son obligatorios.</div> <button id="submit-btn" class="btn btn-primary pull-right">Enviar Formulario</button> </form>
Código:
/* global $ */ $(document).ready(function(){ $('#submit-btn').click(function(event){ event.preventDefault(); $.ajax({ dataType: 'JSON', url: 'sendmail.php', type: 'POST', data: $('#contact').serialize(), beforeSend: function(xhr){ $('#submit-btn').html('ENVIANDO...'); }, success: function(response){ if(response){ console.log(response); if(response['signal'] == 'ok'){ $('#msg').html('<div class="alert alert-success">'+ response['msg'] +'</div>'); $('input, textarea').val(function() { return this.defaultValue; }); } else{ $('#msg').html('<div class="alert alert-danger">'+ response['msg'] +'</div>'); } } }, error: function(){ $('#msg').html('<div class="alert alert-danger">Ha ocurrido un error. Inténtelo más tarde.</div>'); }, complete: function(){ $('#submit-btn').html('Enviar Formulario'); } }); }); });// JavaScript Document
Código PHP:
<?php
require('phpmailer/PHPMailerAutoload.php');
$name = trim($_POST['name']);
$email = trim($_POST['email']);
$phone = trim($_POST['phone']);
$subject = trim($_POST['subject']);
$message = trim($_POST['message']);
if($name != null && $email != null && $phone != null && $message != null){
if(!filter_var($email, FILTER_VALIDATE_EMAIL))
{
$signal = 'bad';
$msg = 'Error. E-mail inválido, por favor compruébelo.';
}
else{
$mail = new PHPMailer;
$mail->CharSet = 'UTF-8';
$mail->From = $email;
$mail->FromName = $name;
$mail->addAddress('[email protected]'); // Add a recipient
$mail->addReplyTo($email, $name);
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Solicitud de información - Nautica Marbella (ES)';
$mail->Body = 'Nombre: '.$name.' <br />Teléfono: '.$phone.' <br />Asunto: '.$subject.' <br /><br />Mensaje: '.$message;
if(!$mail->send()) {
echo 'Error. El mensaje no pudo ser enviado.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
$signal = 'ok';
$msg = '¡Mensaje enviado! Pronto nos pondremos en contacto con usted.';
}
}
}
else{
$signal = 'bad';
$msg = 'Error. Por favor rellene todos los campos.';
}
$data = array(
'signal' => $signal,
'msg' => $msg
);
echo json_encode($data);
?>
Decir que este codigo lo encontre en Internet y lo hice funcionar con dificultad, mi conocimiento en la materia es bastante limitado :) pero funcionamente perfectamente.
¿Alguien sería tan amable de indicarme que codigo introducir para hacer una comprobacion antes de enviar el correo de que la casilla esté marcada? Podria ser por ejemplo despues del if donde comprueba el email.
Gracias!