отправить массив JavaScript через jQuery AJAX POST

Я хочу отправить массив JavaScript в файл PHP.
Это то, что я получил:

var mydata = []; console.log(document.getElementsByTagName("input")[0].name); for (var i = 0; i < document.getElementsByTagName('input').length; i++) { mydata[document.getElementsByTagName("input")[i].name] = document.getElementsByTagName("input")[i].value; }; for (var i = 0; i < document.getElementsByTagName('select').length; i++) { mydata[document.getElementsByTagName("select")[i].name] = document.getElementsByTagName("select")[i].value; }; console.log(mydata); $.ajax({ method: "POST", url: "q.php", data: {'lol': JSON.stringify(mydata)}, contentType: 'application/json', dataType: 'json' }) .done(function( msg ) { alert( "Data Saved: " + msg ); $('#debug').html(msg); }); 

Итак, как вы можете видеть, я создаю массив с петлей, в этот момент все в порядке. Проблема в том, что я пытаюсь отправить его через POST с помощью JSON. Я не знаю, является ли это лучшим методом …

Я пробовал без JSON.stringify(); но $_POST все еще пуст

Кажется, что сообщение не отправлено, но я вижу, что на консоли отправлен запрос на отправку XHR.

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

удалить contentType: 'application/json', dataType: 'json'

И измените var mydata = [] в var mydata = {}

ваш аякс должен выглядеть так

         $ .ajax ({
             метод: «POST»,
             url: "q.php",
             данные: {'lol': mydata}
         })
         .done (function (msg) {
             alert («Сохраненные данные:» + msg);
             . $ ( '# Отладки') HTML (MSG);
         });

Вам не нужно стягивать свои mydata, потому что вы уже уменьшили его как объект.

Надеюсь, поможет