Привет!
Есть php-код отправки формы на почту:
<?php
error_reporting(0);
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: Сообщение с <info@'.$_SERVER['SERVER_NAME'].'>' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
/* ************ */
$email = "test@test.ru"; // почта для отправки заявок
$subject = "Сообщение с test.ru"; // тема письма
/* ************ */
$message = "<table width='450' border='0' cellspacing='0' cellpadding='5' style='font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #000;'>
<tr>
<td colspan='2' style='border: 2px solid #eee; background: #eee; font-weight: 700; font-size: 16px;'>".$subject."</td>
</tr>";
if (isset($_POST['name']) && !empty($_POST['name'])) {$message .= "<tr>
<td width='154' style='border: 2px solid #eee; border-top: none; font-size: 14px;'>Имя</td>
<td width='276' style='border: 2px solid #eee; border-top: none; border-left: none; font-size: 14px;'>".$_POST["name"]."</td>
</tr>";}
if (isset($_POST['email']) && !empty($_POST['email'])) {$message .= "<tr>
<td style='border: 2px solid #eee; border-top: none; font-size: 14px;'>Почта</td>
<td style='border: 2px solid #eee; border-top: none; border-left: none; font-size: 14px;'>".$_POST["email"]."</td>
</tr>";}
if (isset($_POST['info']) && !empty($_POST['info'])) {$message .= "<tr>
<td style='border: 2px solid #eee; border-top: none; font-size: 14px;'>Сообщение</td>
<td style='border: 2px solid #eee; border-top: none; border-left: none; font-size: 14px;'>".$_POST["info"]."</td>
</tr>";}
$message .= "</table>";
mail($email, $subject, $message, $headers);
?>
HTML-форма:
<form id="form">
<input type="text" name="name" class="input-field" required placeholder="Как вас зовут?">
<input type="email" name="email" class="input-field" required placeholder="Ваш e-mail">
<textarea name="info" class="textarea-field" rows="8" cols="40" placeholder="Расскажите о вашем проекте:"></textarea>
<button type="submit" class="submit-button">Отправить сообщение</button>
</form>
И Ajax:
<script type="text/javascript">
$(document).ready(function(){
$("#form").submit(function() { //устанавливаем событие отправки для формы
var form_data = $(this).serialize(); // собираем все данные из формы
$.ajax({
type: "POST", //Метод отправки
url: "mailer.php", //путь до php-файла отправителя
data: form_data,
success: function() {
//код в этом блоке выполняется при успешной отправке сообщения
alert("Ваше сообщение отправлено!");
}
});
});
});
</script>
Коды брал из открытых источников, слегка переделывая под себя (да, я не умею нормально в PHP и Ajax, поэтому и спрашиваю).
Письмо отправляется, но в адресной строке появляется запись после адреса сайта формата:
?name=Имя&email=mail%40gmail.com&info=Сообщение
А сама форма просто исчезает и не выводится даже alert. В чем может быть проблема и как заменить содержание формы без перезагрузки страницы на сообщение "Вы молодец и всё прошло успешно"?