Ответы пользователя по тегу PHP
  • Как решить проблему после отправки POST?

    Использовать ajax чтобы избежать перезагрузки страницы api.jquery.com/jquery.ajax
    Ответ написан
  • Как подключить форму отправки email?

    Необходимо у формы указать обработчик и метод передачи данных, выше в вашем коде, обработчик - файл email.php в корневом каталоге сайта:
    <form id="contact-form" action="/email.php" metod="post">

    Данные отправлять используя ajax, делаю проверку на заполненность полей, для этого необходимы библиотека jquery и сам файл скрипта, например script.js лежащий в папке js в корне сайта
    Подключаем их в head:
    <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script src="/js/script.js"></script>

    Ниже сам скрипт script.js:

    $(document).ready(function(){
        $('#contact-form').submit(function(){
                var subject = $(this).find("#subject :selected").text();
                var name = $(this).find("#name").val();
                var email = $(this).find("#email").val();
                var message = $(this).find("#message").val();
    
                if(!!name && !!email && !!message){
                    $.ajax({
                        type: "POST",
                        url: "/email.php",
                        data: {"subject": subject, "name": name,"email": email, "message": message},
                        cache: false,
                        success: function(){
                            /* действия при успешной отправке */
                        }
                    })
                }
            return false;
        });
    });

    И последнее сам обработчик email.php, который отправляет письма, в последней строке указывается адрес получателя и заголовок письма:
    <? header("Content-type: text/html; charset=utf-8");
    
    	$text = "<b>subject</b>: ".$_POST['subject']."<br>";
    	$text .= "<b>name</b>: ".$_POST['name']."<br>" ;
    	$text .= "<b>email</b>: ".$_POST['email']."<br>";
    	$text .= "<b>message</b>: ".$_POST['message']."<br>";
    	$headers .= "MIME-Version: 1.0\r\n";
    	$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
    	mail('mail@mail.ru', 'Заголовок письма', $text, $headers);
    
    ?>
    Ответ написан
    3 комментария