Хорошо, прежде всего, вам следует прекратить отправку вашей формы, потому что вы используете ajax:
Вы должны изменить:
$('#submit').click(function () {
на
$('#submit').click(function (e) {
e.preventDefault();
Во-вторых, вы отправляете данные: {'name': name, 'email': email, 'message': message, 'captcha': captcha},
в нижнем регистре, но в своем php-коде вы проверяете в верхнем регистре первого символа:
if (isset($_POST['Name']))
$name = $_POST['Name'];
if (isset($_POST['Email']))
$email = $_POST['Email'];
if (isset($_POST['Message']))
$message = $_POST['Message'];
Окончательный код:
JS:
<script type="text/javascript">
$(document).ready(function () {
$('#submit').click(function (e) {
e.preventDefault();
var name = $("#name").val();
var email = $("#email").val();
var message = $("#message").val();
var captcha = $("#captcha").val();
$("#returnmessage").empty();
if (name == '' || email == '' || message == '' || captcha == '') {
alert("Please Fill Required Fields");
}
else {
$.ajax({
type: 'post',
url: 'email.php',
dataType: "json",
data: {'name': name, 'email': email, 'message': message, 'captcha': captcha},
success: function (data) {
if (data.success) {
alert(data.success);
$("#contact-form")[0].reset();
} else {
alert(data.error);
}
}
//window.location.href = "index.php";
});
}
});
PHP:
<?php
session_start();
$email = '';
$json = array();
if (isset($_POST['name']))
$name = $_POST['name'];
if (isset($_POST['email']))
$email = $_POST['email'];
if (isset($_POST['message']))
$message = $_POST['message'];
$subject = 'Enquiry';
// $email = filter_var($email, FILTER_SANITIZE_EMAIL);
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
//echo filter_var($email, FILTER_VALIDATE_EMAIL);exit;
if ($_SESSION['add'] == $_POST['captcha']) {
$subject = $subject;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From:' . $email . "\r\n"; // Sender's Email
$headers .= 'Cc:' . $email . "\r\n"; // Carbon copy to Sender
$template = '<div style="padding:50px; color:white;">Hello ' . $name . ',<br/>'
. '<br/>Thank you...! For Contacting Us.<br/><br/>'
. 'Name:' . $name . '<br/>'
. 'Email:' . $email . '<br/>'
. 'Message:' . $message . '<br/><br/>'
. 'This is a Contact Confirmation mail.'
. '<br/>'
. 'We Will contact You as soon as possible .</div>';
$sendmessage = "<div style=\"background-color:#7E7E7E; color:white;\">" . $template . "</div>";
$sendmessage = wordwrap($sendmessage, 70);
//mail(Configure::read('__general_enquiries'), $subject, $sendmessage, $headers);
mail('balaji@ramsol.in', $message, $sendmessage, $headers);
$json['success'] = "Your Query has been received, We will contact you soon.";
} else {
//$this->Session->setFlash(_('Invalid Captcha'));
$json['error'] = "Invalid CAPTCHA";
}
} else {
$json['error'] = "Invalid Email";
}
echo json_encode($json);
exit;
//header('location:index.php');
?>
Проблема с вашим кодом связана с тем, что вы публикуете свойФорма непосредственно в PHP.