Краткое описание проблемы
Я пытаюсь передать пару значений (номер отслеживания и код оператора) в вызов 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.
Вопросы
- Это лучший способпередать несколько наборов / пар значений путем их сериализации?
- Как правильно передать объект «результат», потому что я получаю ошибку ссылки?Нужно ли создавать функцию обратного вызова?Если да, то как бы выглядел этот пример?