Marsseo73
@Marsseo73

Почему в лендинге письмо с формы обратной связи приходит пустое?

Здравствуйте, у меня два вопроса по форме обратной связи.

Вопрос №1.
Настроил на Лендинге форму, но письма приходят пустыми.

5b803e7d9f49d177418850.jpegВопрос №2.
После отправки заявки на сайте, за место "Ваше сообщение отправлено" пишет "undefined".

5b803fb3692c6372902571.jpeg

HTML код формы

<div class="showcase-input">

    <label for="Callback_name" class="required">Имя <span class="required">*</span></label>    <input name="Callback[name]" id="Callback_name" type="text" maxlength="30" />    <div class="errorMessage" id="Callback_name_em_" style="display:none"></div>
</div>
<div class="showcase-input">
    <div class="column grid-module-2">
        <label for="Callback_phone" class="required">Телефон <span class="required">*</span></label>        <input class="input input_big phone_valid" id="Callback_phone" name="Callback[phone]" type="text" />        <div class="errorMessage" id="Callback_phone_em_" style="display:none"></div>    </div>
</div>

<div class="showcase-checkbox">
    <label>
        <input id="ytCallback_agree" type="hidden" value="0" name="Callback[agree]" /><input checked="checked" name="Callback[agree]" id="Callback_agree" value="1" type="checkbox" />        <span class="showcase-checkbox-text goal-act-1">
            <span> На обработку персональных данных по требованию ФЗ №152</span> <a
                    href="https://ask-garant.ru/wp-content/themes/kazan.reportal.ru/consent-reportal.pdf" target="_blank">согласен</a>
        </span>
    </label>
    <div class="errorMessage" id="Callback_agree_em_" style="display:none"></div></div>
<button type="submit" class="goal-form-1">Бесплатная консультация</button>
<div class="showcase-info__note">Перезвоним в течение 15 минут.</div>
</form>
        </div>
    </div>
</div>


JS формы

function callbackSendForm(form, data, hasError) {
    if (hasError) return false;

    $.ajax({
        url: "/wp-content/themes/kazan.reportal.ru/callback.php",
        type: 'POST',
        data: form.serialize(),
        success: function (response) {
            if (response.result) {
                document.getElementById("callback-form").reset();
            }
            $('#callback-link').click();
            $('#notifications').html('<div>' + response.data + '</div>').fadeIn().delay(3000).fadeOut();
        },
        error: function () {
            $('#callback-request').click();
            $('#notifications').html(yupeCallbackErrorMessage).fadeIn().delay(3000).fadeOut();
        }
    });
    return false;
}


function callbackTopSendForm(form, data, hasError) {
    if (hasError) return false;

    $.ajax({
        url: "/wp-content/themes/kazan.reportal.ru/callback.php",
        type: 'POST',
        data: form.serialize(),
        success: function (response) {
            if (response.result) {
                document.getElementById("callback-form-top").reset();
            }
            $('#callback-link').click();
            $('#notifications').html('<div>' + response.data + '</div>').fadeIn().delay(3000).fadeOut();
        },
        error: function () {
            $('#callback-request').click();
            $('#notifications').html(yupeCallbackErrorMessage).fadeIn().delay(3000).fadeOut();
        }
    });
    return false;
}



function callbackMidleSendForm(form, data, hasError) {
    if (hasError) return false;

    $.ajax({
        url: "/wp-content/themes/kazan.reportal.ru/callback.php",
        type: 'POST',
        data: form.serialize(),
        success: function (response) {
            if (response.result) {
                document.getElementById("callback-form-midle").reset();
            }
            $('#callback-link').click();
            $('#notifications').html('<div>' + response.data + '</div>').fadeIn().delay(3000).fadeOut();
        },
        error: function () {
            $('#callback-request').click();
            $('#notifications').html(yupeCallbackErrorMessage).fadeIn().delay(3000).fadeOut();
        }
    });
    return false;
}



function callbackMapSendForm(form, data, hasError) {
    if (hasError) return false;

    $.ajax({
        url: "/wp-content/themes/kazan.reportal.ru/callback.php",
        type: 'POST',
        data: form.serialize(),
        success: function (response) {
            if (response.result) {
                document.getElementById("callback-form-map").reset();
            }
            $('#callback-link').click();
            $('#notifications').html('<div>' + response.data + '</div>').fadeIn().delay(3000).fadeOut();
        },
        error: function () {
            $('#callback-request').click();
            $('#notifications').html(yupeCallbackErrorMessage).fadeIn().delay(3000).fadeOut();
        }
    });
    return false;
}


function callbackBottomSendForm(form, data, hasError) {
    if (hasError) return false;

    $.ajax({
        url: "/wp-content/themes/kazan.reportal.ru/callback.php",
        type: 'POST',
        data: form.serialize(),
        success: function (response) {
            if (response.result) {
                document.getElementById("callback-form-bottom").reset();
            }
            $('#callback-link').click();
            $('#notifications').html('<div>' + response.data + '</div>').fadeIn().delay(3000).fadeOut();
        },
        error: function () {
            $('#callback-request').click();
            $('#notifications').html(yupeCallbackErrorMessage).fadeIn().delay(3000).fadeOut();
        }
    });
    return false;
}


Форма ссылается к файлу callback.php

<?php
 /* Здесь проверяется существование переменных */
  if (isset($_POST['Callback[name]'])) {$name = $_POST['Callback[name]'];}
 if (isset($_POST['Callback[phone]'])) {$tel = $_POST['Callback[phone]'];}

/* Сюда впишите свою эл. почту */
 $address = "1212121@yandex.ru";

/* А здесь прописывается текст сообщения, \n - перенос строки */
 $mes = "Тема: Заказ обратного звонка!  \nИмя: $name\nТелефон: $tel";

/* А эта функция как раз занимается отправкой письма на указанный вами email */
$sub='Заказ'; //сабж
$email='Заказ <vpluce.ru>'; // от кого
 $send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");


?>


Буду очень благодарен за помощь!
  • Вопрос задан
  • 283 просмотра
Решения вопроса 1
Palych_tw
@Palych_tw
Типа веб-разработчик
А вы хоть дебаг какой-нибудь делали? console.log на js и var_dump на php? чтоб посмотреть вообще что уходит и что приходит? Может, и вопроса бы не было. Вы ж инпуты посылаете массивом
name="Callback[form]"
а в $_POST ищете НЕ по ключам массива
/* Здесь проверяется существование переменных */
  if (isset($_POST['Callback[name]'])) {$name = $_POST['Callback[name]'];}
 if (isset($_POST['Callback[phone]'])) {$tel = $_POST['Callback[phone]'];}

По идее структура $_POST будет такая - $_POST['Callback']['name'] и т.д.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
alex-1917
@alex-1917
Если ответ помог, отметь решением
В файл callback.php добавь:

В начале
$name = 'Поле имя не заполнено';
$tel = 'Поле телефон не заполнено';


в конце что нужно, например
echo 'Всё гут, БОСС. Письмишко улетело!';

А в скрипте вот это response.data замени на это response
Ответ написан
@mirexdoors
1) я надеюсь, открывающий<form> вы просто не скопировали? =)
2) а покажите, как вызываете свои функции?
Ответ написан
Ваш ответ на вопрос

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

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