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

Как передать поля на почту jsonData=" + $.toJSON?

Привет всем! У меня возникла такая проблема.
В html так:
<form>
                            <div class="form-heading">
                                <h5>оставьте заявку на</h5>
                                <p>получение скидки 30% на все модели микронаушников</p>
                            </div>
                            <div class="form-content">
                                <div class="form-group">
                                    <label>Имя</label>
                                    <input type="text" name="name" class="name required">
                                </div>
                                <div class="form-group">
                                    <label>E-mail</label>
                                    <input type="text" name="email" class="email required">
                                </div>
                                <div class="form-group">
                                    <label>Телефон</label>
                                    <input type="text" name="phone" class="phone required">
                                </div>
                                <a href="#" class="btn submit order1">оставить заявку</a>
                                
                            </div>
                        </form>

Есть скрипт формы отправки на почту :
$(document).ready(function() {
        function a(a, b) {
            var c = "";
            if ("email" == b) var c = /^[a-zA-Z0-9][-\._a-zA-Z0-9]+@(?:[a-zA-Z0-9][-a-zA-Z0-9]+\.)+[a-zA-Z]{2,6}$/;
            if ("phone" == b) var c = /^\+?[\d()\-\s]*\d+\s*$/;
            if ("name" == b) var c = /^[a-zA-Zа-яА-Я\s]*$/;
            return a.match(c) ? !0 : !1
        }
        var b;
        $(".catalog .item .btn2").on("click", function() {
            b = $(this).parent().parent().find(".name").text()
        }), $(".catalog .item .cont").on("click", function() {
            b = $(this).find(".name").text()
        }), $(".submit").on("click", function(c) {
            c.preventDefault();
            var d = !1;
            if ($(this).hasClass("ORDER1")) var e = "ORDER1";
            if ($(this).hasClass("ORDER2")) var e = "ORDER2";
            if ($(this).hasClass("ORDER3")) var e = "ORDER3";
            if ($(this).hasClass("ORDER4")) var e = "ORDER4";
            if ($(this).hasClass("ORDER5")) var e = "ORDER5";
            if ($(this).hasClass("ORDER6")) var e = "ORDER6";
            if ($(this).parent().find(".required").each(function() {
                    if ($(this).hasClass("name")) {
                        if (0 == $(this).val().length) {
                            d = !0, $(this).parent().addClass("err").effect("bounce", 400), $(this).popover({
                                placement: "top",
                                trigger: "manual",
                                content: "Введите имя"
                            }), $(this).popover("show");
                            var b = this;
                            return setTimeout(function() {
                                $(b).popover("hide")
                            }, 5e3), !1
                        }
                        $(this).parent().removeClass("err"), d = !1
                    } else if ($(this).hasClass("phone")) {
                        if (!a($(this).val(), "phone")) {
                            d = !0, $(this).parent().addClass("err").effect("bounce", 400), $(this).popover({
                                placement: "top",
                                trigger: "manual",
                                content: "Введите телефон"
                            }), $(this).popover("show");
                            var b = this;
                            return setTimeout(function() {
                                $(b).popover("hide")
                            }, 5e3), !1
                        }
                        $(this).parent().removeClass("err"), d = !1
                    } else if ($(this).hasClass("message")) {
                        if (0 == $(this).val().length) {
                            d = !0, $(this).parent().addClass("err").effect("bounce", 400), $(this).popover({
                                placement: "top",
                                trigger: "manual",
                                content: "Введите сообщение"
                            }), $(this).popover("show");
                            var b = this;
                            return setTimeout(function() {
                                $(b).popover("hide")
                            }, 5e3), !1
                        }
                        $(this).parent().removeClass("err"), d = !1
                    } else if ($(this).hasClass("email")) {
                        if (!a($(this).val(), "email")) {
                            d = !0, $(this).parent().addClass("err").effect("bounce", 400), $(this).popover({
                                placement: "top",
                                trigger: "manual",
                                content: "Введите e-mail"
                            }), $(this).popover("show");
                            var b = this;
                            return setTimeout(function() {
                                $(b).popover("hide")
                            }, 5e3), !1
                        }
                        $(this).parent().removeClass("err"), d = !1
                    } else if ($(this).hasClass("ttime")) {
                        if (0 == $(this).val().length) {
                            d = !0, $(this).parent().addClass("err").effect("bounce", 400), $(this).popover({
                                placement: "top",
                                trigger: "manual",
                                content: "Введите удобное время для звонка"
                            }), $(this).popover("show");
                            var b = this;
                            return setTimeout(function() {
                                $(b).popover("hide")
                            }, 5e3), !1
                        }
                        $(this).parent().removeClass("err"), d = !1
                    }
                }), d === !1) {
                var f = {};
                0 != $(this).parent().find(".name").val() && (f.name = $(this).parent().find(".name").val()), 0 != $(this).parent().find(".phone").val() && (f.phone = $(this).parent().find(".phone").val()), 0 != $(this).parent().find(".message").val() && (f.message = $(this).parent().find(".message").val()), 0 != $(this).parent().find(".email").val() && (f.email = $(this).parent().find(".email").val()), 0 != $(this).parent().find(".ttime").val() && (f.ttime = $(this).parent().find(".ttime").val()), "" != b && (f.headsett = b), $(":input", ".form").val(""), $.ajax({
                    url: "mail.php",
                    type: "POST",
                    data: "jsonData=" + $.toJSON(f),
                    success: function() {
                        return $.fancybox.close(), $.fancybox({
                            href: "#thank-you",
                            padding: 0
                        })
                    }
                })
            }
        })
    })

Есть php обработчик

<?php
    if (isset($_POST['name'])) {$name = $_POST['name'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['email'])) {$email = $_POST['email'];}
    if (isset($_POST['formData'])) {$formData = $_POST['formData'];}

    $to = "zinset@ukr.net"; /*Укажите адрес, га который должно приходить письмо*/
    $sendfrom   = "zinset@ukr.net"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    $subject = "Новая заявка";
    $message = "$formData<br> <b>Имя пославшего:</b> $name <br><b>Телефон:</b> $phone<br><b>Емейл:</b> $email";
    $send = mail ($to, $subject, $message, $headers);
?>


Проблема, что на почту приходит такое prntscr.com/afwbc9 . Почему поля пустые? Как исправить косяк?
  • Вопрос задан
  • 472 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
data: f
Остальное лишнее, вы же в обработчике не смотрите в $_POST['jsonData'].
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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