Saya memiliki fungsi Javascript (Jquery) yang mengulangi elemen input dalam formulir, merakit array ke JSON secara string, dan kemudian mempostingnya ke titik akhir AJAX. Masing-masing berjalan setelah panggilan AJAX, dan saya tidak yakin metode apa yang paling diterima untuk memanggil titik akhir AJAX setelah masing-masing.

Fungsi saya:

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);
        }
    });
};

Memanggil AJAX ini mengirimkan larik data kosong di JSON, tetapi log konsol di foreach menunjukkan elemen data yang bertambah dengan nilai input berikutnya di setiap belokan. Saya telah mencoba menempatkan panggilan AJAX dalam suatu fungsi setelah fungsi pertama masing-masing, tetapi itu tidak berhasil.

Terima kasih untuk petunjuknya.

0
user1955162 27 Oktober 2019, 22:32

1 menjawab

Jawaban Terbaik

Anda perlu mengubah var data = [] menjadi var data = {}. Di setiap loop Anda menambahkan properti ke array, yang JSON.stringify tidak mengambilnya.

2
Andre Nuechter 27 Oktober 2019, 20:05