Я не лучший на PHP, и я борюсь с тем, что, по моему мнению, должен быть довольно простым сценарием для отправки контактной формы в электронном письме.PHP отправить вопрос по электронной почте из ajax/jquery
Мой JQuery запуска сценария выглядит следующим образом -
data_html = "name="+ names + "&phone_number=" + phone + "&email_address="+ email_address + "&arrival_date=" + arrival + "&nights=" + nights + "&adults=" + adults+ "&children=" + children + "&rooms=" + rooms + "¬es=" + notes;
if (error == false){
$('.error').fadeOut(500);
$.ajax({
type: 'POST',
url: 'sendMail.php',
data: data_html,
success: function(msg){
if (msg == 'sent'){
alert("sent")
$('#contact-form').fadeOut();
$('#success').fadeIn();
$('#success').html('Your request has been sent, we will respond to you shortly - any issues please call us on 01539 724468') ;
$('#name').val(''); $('#phone').val(''); $('#emailAd').val(''); $('#arrival').val(''); $('#notes').val('');
}else{
alert("not sent")
$('#contact-form').fadeOut();
$('#success').fadeIn();
$('#success').html('Mail Error. Please Try Again.!') ;
setTimeout("$('#success').fadeOut(); $('#contact-form').fadeOut();)",5000)
;
}
}
});
Мой PHP скрипт состоит из следующих -
<?php
$name = $_POST['name'];
$phone = $_POST['phone_number'];
$email = $_POST['email_address'];
$arrival = $_POST['arrival_date'];
$nights = $_POST['nights'];
$adults = $_POST['adults'];
$children = $_POST['children'];
$rooms = $_POST['rooms'];
$notes = $_POST['notes'];
$to ='[email protected]';
$message = "";
$message .= "Booking Request from Sundial Website<br>\n<br>\n";
$message .= "*Name: " . htmlspecialchars($name, ENT_QUOTES) . "<br>\n";
$message .= "*Email: " . htmlspecialchars($email, ENT_QUOTES) . "<br>\n";
$message .= "*Phone Number: " . htmlspecialchars($phone, ENT_QUOTES) . "<br>\n";
$message .= "Arrival Date: " . htmlspecialchars($arrival, ENT_QUOTES) . "<br>\n";
$message .= "No of Nights: " . htmlspecialchars($nights, ENT_QUOTES) . "<br>\n";
$message .= "Adults: " . htmlspecialchars($adults, ENT_QUOTES) . "<br>\n";
$message .= "Children: " . htmlspecialchars($children, ENT_QUOTES) . "<br>\n";
$message .= "Rooms: " . htmlspecialchars($rooms, ENT_QUOTES) . "<br>\n";
$message .= "Notes: " . htmlspecialchars($notes, ENT_QUOTES) . "<br>\n";
$headers = "MIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: \"" . $name . "\" <" . $email . ">\r\n";
$headers .= "Reply-To: " . $email . "\r\n";
$message = utf8_decode($message); mail($to, "Booking Request from Sundial Website", $message, $headers);
if ($message){
echo 'sent';
}else{
echo 'failed';
}
?>
Может кто-нибудь помочь или предложить альтернативный метод? Файлы находятся здесь, если вы хотите увидеть их в прямом эфире (http://www.offthecuffdesign.co.uk/chilli/) и (http://www.offthecuffdesign.co.uk/chilli/sendMail.php)
Если вы хотите проверить успех и неудачу команды mail, вам нужно получить возвращаемое значение ... '$ message = mail (...);' –
Пробовал ли вы печатать опубликованные значения после использования print_r ($ _ POST), что вы там видите. Оповещение (msg) в javascript для печати ответа. Расскажите, что вы наблюдаете. – Kiran
Каков ответ запроса ajax? –