@cluberr

Почему не работает отправка формы на email php + ajax?

Решил по этому ходу https://habrahabr.ru/sandbox/93363/ сделать отправку формы на mail.
И ничего не работает , в чем может быть косяк ?
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Mail Send</title>
</head>

<body>
    <form id="form" method="post">
        <input type="text" name="name" placeholder="Name" required="required" />
        <input type="text" name="phone" placeholder="+375291571312" required="required" />
        <input type="submit" value="Заказать звонок" />
    </form>
    <script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
    <script>
        $(document).ready(function () {
                    $("#form").submit(function () { //устанавливаем событие отправки для формы с id=form
                            var form_data = $(this).serialize(); //собераем все данные из формы
                            $.ajax({
                                    type: "POST", //Метод отправки
                                    url: "sendmail.php", //путь до php фаила отправителя
                                    data: form_data,
                                    success: function () {
                                        //код в этом блоке выполняется при успешной отправке сообщения
                                        alert("Ваше сообщение отпрвлено!");
                                    });
                            });
                    });
    </script>
    </script>
</body>

</html>


<?
if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['phone'])&&$_POST['phone']!=""))
{ //Проверка отправилось ли наше поля name и не пустые ли они
        $to = '1571312@gmail.com'; //Почта получателя, через запятую можно указать сколько угодно адресов
        $subject = 'Заявка с сайта'; //Загаловок сообщения
        $message = '
                <html>
                    <head>
                        <title>'.$subject.'</title>
                    </head>
                    <body>
                        <p>Имя: '.$_POST['name'].'</p>
                        <p>Телефон: '.$_POST['phone'].'</p>                        
                    </body>
                </html>'; //Текст нащего сообщения можно использовать HTML теги
        $headers  = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
        $headers .= "From: Отправитель <from@example.com>\r\n"; //Наименование и почта отправителя
        mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail
}
?>
  • Вопрос задан
  • 819 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Roboto
Мб потому что submit? Указуй button
success:function(data){alert(data)} глянь что вернет
А так пхп верно
И помоему аяск на клик работает только
().click(function(){
})
Ответ написан
Комментировать
Urvin
@Urvin
1. «Не работает» не бывает. Всегда можно докопаться до лога ошибки или отследить входные данные.
2.
$("#form").submit(function(event) {
...
event.preventDefault();
});

3. Используйте IDE, поправьте скобки, у Вас мешанина из ")" и "}";
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы