Ajax данные отправлены на php возвращая ноль - PullRequest
0 голосов
/ 27 марта 2020

У меня есть форма на сайте настройки, чтобы получить различные детали от пользователя. Имя, адрес и др. c. Я использую jQuery и ajax для публикации данных, которые затем отправляются по электронной почте владельцам веб-сайтов с использованием PHP.

. Я использую a для каждого l oop до l oop через p теги в форме, а затем добавить эти данные в массив. Если тег p имеет идентификатор «required» и значение пустое, то l oop прерывается и отображает сообщение для заполнения этого значения.

Я определил, что что-то в l oop вызывает проблему, как будто я изменяю l oop, чтобы просто добавить значение generi c для каждого входного сигнала, который он находит, затем данные сообщения успешно. Я просто не уверен, в чем может быть проблема.

Вот это jQuery:

$("#requestForm input[type='submit']").click(function() {
    event.preventDefault();

    var formData = [];
    var allowSubmit;

    $("#requestForm > div > p:not(.ignore)").each(function() {            
        if($(this).children("input[type='text']").length > 0) {
            var input = $(this).find("input[type='text']").first();
        }
        else if($(this).children("input[type='checkbox']").length > 0) {
            var input = $(this).children("input[type='checkbox']").first();
        }
        else if($(this).children("select").length > 0) {
            var input = $(this).children("select").first();
        }
        else if($(this).children("textarea").length > 0) {
            var input = $(this).children("textarea").first();
        }
        else {
            var input = null;
        }

        if(input != null) {
            if($(this).attr("id") == "required" && (input.val() == "" || input.val() == null)) {
                $("#message").text($(this).children("label").text() + " is required");

                allowSubmit = false;
                return false;
            }
            else {
                if (input.attr("type") == "checkbox") {
                    if(input.is(":checked")) {
                        formData[input.attr("name")] = "Yes";
                    }
                    else {
                        formData[input.attr("name")] = "No";
                    }
                }
                else {
                    $("#message").text("");

                    formData[$(this).children("label").text()] = input.val();
                }

                allowSubmit = true;
            }
        }
    });

    if(allowSubmit == false) {
        return;
    }

    console.log(formData);

    $.ajax({
        url: root_dir + "scripts/sendBrochureRequest.php",
        method: "POST",
        dataType: "json",
        data: ({formData}),
        success: function(data) {
            console.log(data);
        }
    });
});

В минуту все, что PHP делает, это echo json_encode ($ _ POST ['formData']); Так что я могу видеть, получено ли что-нибудь.

Когда ajax возвращает значение, оно соответствует исходному значению массива formData, поэтому он не собирает данные, добавляемые в массив с помощью l oop. Если я установлю для formData любое другое значение, то ajax вернет это установленное значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...