Как передать сериализованный объект формы в вызов jquery ajax? - PullRequest
0 голосов
/ 17 февраля 2019

Краткое описание проблемы

Я пытаюсь передать пару значений (номер отслеживания и код оператора) в вызов jQuery ajax как объект, но получаю ошибку ссылки: 'ReferenceError: результат не определен'

Фон

Значения происходят из входных данных в форме.Ниже приведен пример с одной парой значений (1 - номер отслеживания и 1 - переносимый код).

<form role="form" class="pt-3">
            <div class="form-group row">
                <div class="col-sm-6 both">
                    <fieldset>
                        <input class="form-control trackingNumber" id="tracking-number" name="tracking_number" type="text" placeholder="Enter Tracking Number (ie: 712345362789)"
                            value="">
                        <input class="form-control carrierCode" id="carrier-code" name="carrier_code" type="text" placeholder="Enter Carrier Code (ie: UPS, FedEx, USPS)"
                            value="">
                </div>
                <button class="tracking-button pulse-button" type="button" value='send' id="submit" onclick="UserParams()">Track Now</button>
            </div>
        </form>

Ниже приведен пример с несколькими парами значений (2 - номера отслеживания и 2 - перенесенкоды).

<form role="form" class="pt-3">
            <div class="form-group row">
                <div class="col-sm-6 both">
                    <fieldset>
                        <input class="form-control trackingNumber" id="tracking-number" name="tracking_number" type="text" placeholder="Enter Tracking Number (ie: 712345362789)"
                            value="">
                        <input class="form-control carrierCode" id="carrier-code" name="carrier_code" type="text" placeholder="Enter Carrier Code (ie: UPS, FedEx, USPS)"
                            value="">
                    </fieldset>
                </div>
                <div class="col-sm-6 both">
                    <fieldset>
                        <input class="form-control trackingNumber" id="tracking-number" name="tracking_number" type="text" placeholder="Enter Tracking Number (ie: 712345362789)"
                            value="">
                        <input class="form-control carrierCode" id="carrier-code" name="carrier_code" type="text" placeholder="Enter Carrier Code (ie: UPS, FedEx, USPS)"
                            value="">
                    </fieldset>
                </div>
                <button class="tracking-button pulse-button" type="button" value='send' id="submit" onclick="UserParams()">Track Now</button>
            </div>
        </form>

При нажатии кнопки запускается функция UserParams.Эта функция сериализует входные данные внутри набора полей в объект, который выглядит следующим образом:

tracking_information: { 
0: tracking_number: "", carrier_code: "",
1: tracking_number: "", carrier_code: "",
}

Функция также вызывает локальный API после сериализации объекта.

function UserParams() {

        var $form = $('form');
        var fieldSets = $form.find('fieldset');
        var result = {
            tracking_information: []
        };
        fieldSets.each(function () {
            var fields = {};
            $.each($(this).serializeArray(), function () {
                fields[this.name] = this.value;
            });
            result.tracking_information.push(fields);
        });

        // console.log(result);

        $.ajax({
            type: 'GET',
            url: '/api/tracking/retrieve/',
            data: result,
            dataType: 'json',
        });

    } 

Я попробовал следующее, но оно не сработало.

data: JSON.stringify(result);

Ожидаемые результаты

Пользователь диктует, хочет ли онотправить одну пару или несколько.Я хочу убедиться, что этот код настроен для обработки динамических изменений.

Я хочу передать одну или несколько пар через ajax-вызов jQuery.

Вопросы

  1. Это лучший способпередать несколько наборов / пар значений путем их сериализации?
  2. Как правильно передать объект «результат», потому что я получаю ошибку ссылки?Нужно ли создавать функцию обратного вызова?Если да, то как бы выглядел этот пример?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...