},
error: function() {
alert('При отправке данных произошла ошибка, попробуйте снова.');
$thisBtn.removeClass('disabled').text($thisText);
clearForm ();
}
});
}
});
});
В файле index.php следующая часть кода:
<div class="buy-one-click">
<div class="container">
<div class="section-title">
<h3>Продайте всего за 1 клик!</h3>
</div>
<a href="modal-service1.html" class="ajax-popup-link btn btn-success" style="text-transform: none; padding: 20px 20px 20px 40px; width:300px; margin:10px auto 0; display:block; line-height: 0.8;position:relative; font-size:22px;"><img src="img/arrow-right.png" style="position:absolute; top:21px;left:53px;">Оставить
заявку</a>
</div>
И третий файл mail.php
<?php
if (isset($_POST['notEmpty'])) {$name = $_POST['notEmpty'];}
if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
if (isset($_POST['formData'])) {$formData = $_POST['formData'];}
$to = "[email protected]"; /*Укажите адрес, га который должно приходить письмо*/
$sendfrom = "[email protected]"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
$headers = "From: " . strip_tags($sendfrom) . "\r\n";
$headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html;charset=utf-8 \r\n";
$subject = "Новая заявка";
$message = "$formData<br> <b>Имя пославшего:</b> $name <br><b>Телефон:</b> $phone<br>";
$send = mail ($to, $subject, $message, $headers);
?>
Не могу понять где тут и что неправильно.
23.12.2016, 16:02
Art Lev
Очень много лишнего кода. Из формы берите поля, затем $.post передавайте в скрипт (не забыв использовать trim() и strip_tags()), после чего формируете php mail.
Кстати, при отправке, проверьте, что вам возвращает функция mail(), если 0, то дело в сервере, если 1, то всё должно работать.
29.12.2016, 07:24
Dmitrii
Возможно мой мозг спросонья что-то не так понял, но:
1. Вы отправляете из AJAX POST-параметр jsonData=...:
if (isset($_POST['notEmpty'])) {$name = $_POST['notEmpty'];}
if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
if (isset($_POST['formData'])) {$formData = $_POST['formData'];}
2. Откуда вы в JS берёте formData? До того момента, как он указывается в data AJAX'а, он нигде не появляется.
3. Если AJAX проходит (о чём можно судить, если выполняются действия в случае успеха, описанные после success:), то письмо должно уйти, но если вы напутали с переменными, то должен прийти текст: " Имя пославшего: Телефон: ". Если письмо вообще не отправляется, то либо где-то напортачили с самим AJAX'ом, в результате чего тупо не производится запрос к файлу mail.php (откройте консоль по F12 и смотрите на наличие ошибок при отправке), либо нет технической возможности отправить письмо функцией mail(). Другое дело – если письмо отправляется, но не доходит. Тогда надо посмотреть на наличие IP сервера в блэк-листах, например тут: http://mxtoolbox.com/blacklists.aspx