У меня есть функция 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 в функцию после каждой первой функции, но это не работает.

Спасибо за указатели.

0
user1955162

1 ответ

Вам нужно изменить var data = [] на var data = {} . В каждом цикле вы добавляете свойства в массив, который JSON.stringify не обнаруживает.

58582670