У меня есть функция Javascript (Jquery), которая перебирает входные элементы в форме, собирает массив в JSON и затем отправляет его в конечную точку AJAX. Каждый из них выполняется после вызова AJAX, и я не уверен, что наиболее приемлемый метод для вызова конечной точки AJAX после каждого.
Моя функция:
function FormHandler() {
var data = [];
$("form#myForm :input").each(function () {
var input = $(this);
var field_key = input[0]['name'].substr(4);
var value = input[0]['value'];
data[field_key] = value;
console.log(data);
});
$.ajax({
dataType: "json",
url: 'https://myendpoint.xxx/v1/' + pathname,
type: 'POST',
data: {'data': JSON.stringify(data)},
success: function (thisdata) {
console.log(thisdata);
}
});
};
Вызов этого AJAX отправляет пустой массив данных в JSON, но журналы консоли в foreach показывают, что элемент данных увеличивается на следующее входное значение при каждом повороте. Я попытался поместить вызов AJAX в функцию после каждой первой функции, но это не работает.
Спасибо за указатели.
1 ответ
Вам нужно изменить var data = []
на var data = {}
. В каждом цикле вы добавляете свойства в массив, который JSON.stringify
не обнаруживает.
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.