Задать вопрос
@Chemodancheek

Почему не передаются данные из контактной формы?

Добрый день! Уважаемые специалисты, помогите.

Есть шаблон сайта, но не работает форма обратной связи. Письмо приходит пустое, хотя все данные: имя, почта и сообщение заполняются.

Главная: pastebin.com/GP1Fyn1C

JS скрипт, который (если я правильно понимаю) участвует в отправке сообщения: pastebin.com/qzceacQx

PHP код отправки: pastebin.com/Wc6LU3CA

С меня безграничный респект и уважение :)
  • Вопрос задан
  • 543 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
$.ajax({
url: $(this).attr('action')
});


latest?cb=20140626182735

А вообще гениально - просто делать запрос и не отсылать данные, а потом удивляться, что они не пришли.

//Contact form
$('#main-contact-form').submit(function(e){
    (e||event).preventDefault();
    
    var $this = $(this), $form_status = $('<div class="form_status"></div>');
    //Отправляем запрос
    $.ajax({
        url  : $this.attr('action'),
        type: "post",
        data: $this.serialize(),
        beforeSend: function(){
                $this.prepend( $form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn() );
        }
    }).done(function(data){
         $form_status.html('<p class="text-success">Thank you for contact us. As early as possible  we will contact you</p>').delay(3000).fadeOut();
    });
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@VZVZ
Reverse-Engineer, Software Developer, Architect
Так вы в JSе поля формы-то и не отправляете нигде. Просто делаете AJAX-запрос к action и все.
Или я тупой, а jQuery умнее меня, и даже в такой ситуации догадывается что надо отправить поля?))) Сомневаюсь.

Вообще сниффер Fiddler советую для подобных случаев, он ведет журнал запросов от клиента к серверу, смотришь журнал и сразу ясно, правильный ли запрос отправил клиент, и если правильный, то на серваке проблема
Ответ написан
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
1. В php есть $_POST['subject'], в то время, как в форме такого поля нет. Не думаю, что из-за этого, но надо поправить в любом случае.
2. Проверьте что в ajax запросе уходит.
3. Если в пункте 2 все ок, то еще можно попробовать заменить
$name       = $_POST['name'];
$from       = $_POST['email'];
$subject    = $_POST['subject'];
$message    = $_POST['message'];

на
$name       = @trim(stripslashes($_POST['name']));
$from       = @trim(stripslashes($_POST['email']));
$subject    = @trim(stripslashes($_POST['subject']));
$message    = @trim(stripslashes($_POST['message']));

и посмотреть, что прийдет
Ответ написан
Ваш ответ на вопрос

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

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