Что не так с массивом?

// Массив куда всё сложим
var NewArr = [];
var Rows = document.getElementsByClassName('input_block');
// Перебираем их
for (let i=0;i<Rows.length;i++){
    // Создаём временный массив
    var tempArr = [];
    // Получаем все поля input из элемента с классом row
    var inputs = Rows[i].getElementsByTagName('input');
    // Перебираем их
    for (let z=0;z<inputs.length;z++){
        // Получаем имя элемента input
        var name = inputs[z].getAttribute("name");
        // Во временный массив добавляем ключ name и значение в значение
        tempArr[name] = inputs[z].value;
    }
    // Добавляем временный массив в основной
    // массив для каждого элемента с классом row
    NewArr.push(tempArr);
}

в консоли выглядит так:

[Array(0), Array(0)]
0: [id: "2", print: "1", inspection: "Color", method: "ASTM D1500", result: "55"]
1: [id: "3", print: "1", inspection: "Color2", method: "ASTM D15002", result: "36"]

а если передать в ajax:

$.ajax({
    type:'POST',
    url:'/ajaxRequest/create',
    data:{
        arr:NewArr,
        category:category,
        product_id:product_id
    },
    success:function(data){
        console.log(data);
    }
});

на сервере ничего не получает в data ничего не возвращает:

public function store(Request $request)
{
    $arrs = $request->arr;

    return $arrs;
}

а так вообще null:

public function store(Request $request)
{
    $arrs = $request->arr;

    return json_encode($arrs);
}

Ответы (1 шт):

Автор решения: junior

на сервере нужно принимать

public function store(Request $request)
{
    $arrs = $request->input('arr')
    $arr = json_decode($arrs)
    foreach ($arr as $ar){
       переменную получаем с объекта
       $print = $ar->print,
    }
    return true;
}

и просто замени tempArr = [] на tempObj = {} – Grundy 1 час назад

→ Ссылка