@Impuls1110

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

Здравствуйте. На Лендинге есть две формы обратной связи.
Форма 1. Из popup
<form action="/send.php" method="POST" id="php-form-zvonok">
                    <h1>Заполните форму</h1><br/>
                    <span>чтобы заказать обратный звонок</span><br/>
                    <input type="text" name="name" placeholder="Ваше имя *" required><br/>
                    <input type="text" name="phone" placeholder="Ваш телефон *" required><br/>
                    <button type="submit" class="stoimost" onclick="yaCounter46950849.reachGoal('zayavka'); return true;">Заказать звонок</button>
                </form>


Форма работает через

<script>
            $(document).ready(function () {
                $("#php-form-zvonok").submit(function() {
                    var form_data = $(this).serialize();
                    $.ajax({
                        type: "POST",
                        url: "send.php",
                        data: form_data,
                        success: function() {
                            alert('Ваше сообщение отправлено!');
                        },
                        error: function() {
                            alert('возникла ошибка');
                        }
                    });
                    return false;
                });
            });

        </script>


Форма 2
<form action="/send.php" method="POST" id="php-form-zayvka">
                            <h1>Оставьте заявку</h1><br/>
                            <span>на бесплатный расчет вашего заказа</span><br/>
                            <input type="text" name="name" placeholder="Ваше имя *" required><br/>
                            <input type="text" name="phone" placeholder="Ваш телефон *" required><br/>
                            <input type="text" name="email" placeholder="Ваш e-mail"><br/>
                            <button type="submit" class="stoimost" onclick="yaCounter46950849.reachGoal('zayavka'); return true;">Рассчитать стоимость заказа</button>
                        </form>

Форма работает через
<script>
                            $(document).ready(function() {
                                $("#php-form-zayvka").submit(function() {
                                    var form_data = $(this).serialize();
                                    $.ajax({
                                        type: "POST",
                                        url: "send.php",
                                        data: form_data,
                                        success: function() {
                                            alert('Ваше сообщение отправлено!');
                                        },
                                        error: function() {
                                            alert('возникла ошибка');
                                        }
                                    });
                                    return false;
                                });
                            });

                        </script>


Обе формы ссылаются к файлу send.php
<?php
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$name = htmlspecialchars($name);
$phone = htmlspecialchars($phone);
$email = htmlspecialchars($email);
$name = urldecode($name);
$phone = urldecode($phone);
$email = urldecode($email);
$name = trim($name);
$phone = trim($phone);
$email = trim($email);
//echo $name;
//echo "<br>";
//echo $phone;
//echo "<br>";
//echo $email;
if (mail("support@1rezultat.kz", "Полиграфия", "Имя: ".$name." Телефон: ".$phone." Email: ".$email ,"From: noreply@rezultat.kz \r\n"))
 {     echo "сообщение успешно отправлено";
} else { 
    echo "при отправке сообщения возникли ошибки";
}?>


И прикол в том, что письмо с второй формы приходит с введенными данными, а с первой формы пустое. В чём может быть проблема?

P.S

ID форм разные не просто так, форма с id="php-form-zvonok" служит для вызова в popup . Если формы поменять местами то именно в popup менеджере рабочая форма прекращает работать. Я думаю что проблема кроется где то в popup менеджере.

Popup менеджер
  • Вопрос задан
  • 469 просмотров
Решения вопроса 1
@Kirill-Gorelov
С ума с IT
Да, действительно странно) Дело не в action, ты же отправляешь через ajax.
Но стоило бы оттолкнуться от следующего, посмотреть
var form_data = $(this).serialize();
console.log(form_data);


Второе.
И у первой формы и у второй.
Попробовать дать разные имена этим переменным.
var form_data1 = $(this).serialize()
var form_data2 = $(this).serialize()


И уж совсем тогда попробовать взять конкретные значения из нужных полей, жестко привязав их.
Вот так например
var email = $("form.php-form-zvonok").find( "input[name*='email']" ).val();

И соответственно все подставляешь и так же передаешь ajax`ом
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@artyomunder
гуглю за ленивых
Адреса у форм разные, скорей всего.
Если формы одинковые, почему бы не заменить ID на class и не плодить куча js
В двойных кавычках не обязательно использовать канкатенацию, он и так поймет, что это переменная и что в ней лежит
Ответ написан
Ваш ответ на вопрос

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

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