Добрый день. Готов скинуть на кофе тому, кто решит проблему.
Пытался делать форму с отправкой без перезагрузки по вот этой инструкции:
gnatkovsky.com.ua/forma-otpravki-pisma-bez-perezag...
Кнопка отправки исчезает после нажатия, текст не выводится, письмо не присылается.
То, как организовано:
Скрипт AJAX подключен к шапке.
HTML код:
<form method="post" action="" id="formMain">
<fieldset>
<h3>Получите <a class="sad-link">бесплатную</a><br> консультацию </h3>
<p style="margin-top: -3vh">Хотите увеличить продуктивность диалога <b>в 10 раз</b>?<br> Уделите <b>2 минуты</b>статье в нашем <a style="color:#E6045C;" href="#section5">блоге</a>.</p>
<input type="text" id="name" required placeholder="Ваше имя" autocomplete="off" name="name"><br>
<input type="text" id="email" placeholder="Email или телефон" required name="email"><br>
<p>Вы также можете написать нам в <a style="color: #4A76A8;" href="https://vk.com/id538440693" target="_blank">Вконтакте</a>.</p>
<div id="messegeResult"><input id="button" style="border:0 none;" class="button2" type="button" value="Стать частью искусства" onclick="AjaxFormRequest('messegeResult', 'formMain', 'zakaz.php')"/></div>
</fieldset>
</form>
Script:
<script type="text/javascript">
function AjaxFormRequest(result_id, formMain, url) {
jQuery.ajax({
url: url,
type: "POST",
dataType: "html",
data: jQuery("#" + formMain).serialize(),
success: function(response) {
document.getElementById(result_id).innerHTML = response;
},
error: function(response) {
document.getElementById(result_id).innerHTML = "<p>Возникла ошибка при отправке формы. Попробуйте еще раз</p>";
}
});
$(':input', '#formMain')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('ch<code lang="php">
</code>ecked')
.removeAttr('selected');
}
</script>
PHP:
<?php
if($_POST)
{
$to = "velyaaadumanau@yandex.ru"; //КУДА ОТПРАВЛЯТЬ ПИСЬМО
$subject = "Заказ консультации"; //ТЕМА
$message = '<span style="font-weight:bold;color:#ff6600;font-size:18px;"><i>Заказ звонка</i> </span><br><br>
Имя: <span style="font-weight:bold;color:#339900;">'.$_POST['name'].'</span><br>
Телефон или Email: <span style="font-weight:bold;color:#339900;"> '.$_POST['email'].'</span>';
$headers = "Content-type: text/html; charset=UTF-8 \r\n";
$headers .= "From: <vely.dum@gmail.com>\r\n"; // ОТ КОГО, ПРИДУМАЙТЕ ЯЩИК ИЛИ УКАЖИТЕ ПОЧТУ СВОЕГО САЙТА.
$result = mail($to, $subject, $message, $headers);
if ($result){
echo "<p>Сообщение успешно отправлено. Скоро Вам перезвонят</p>";
}
}
?>