Я пытаюсь получить количество учеников, присутствующих или отсутствующих в таблице, и отправляю их на сервер laravel, используя jquery (каждый) для перебора всех данных таблицы и помещая каждую из записей в массив. Я новичок в программировании. Спасибо
Это мой Javascript:
$('#submitRollCall').click(function(e){
e.preventDefault();
let data = [];
$('input').parents('tr').each(function(){
const rollCallObj = {};
rollCallObj.stdId = $(this).find('#stdId').val();
rollCallObj.rollCall = $(this).find("input:checked").val();
data.push(rollCallObj);
})
console.log(data)
$.ajax({
type:'POST',
url: '/rollCall',
beforeSend: function (xhr, type) {
if(!type.crossDomain) {
xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
}
},
data:{
'data': JSON.stringify(data)
},
success:function(data){
if(data) {
M.toast({html:'Roll-Call Successfully taken!'});
} else {
M.toast({html:'Not Success'});
}
console.log(data);
},error:function(xhr, status, error){
M.toast({html:"Pls Make sure to check each student"});
}
})
});
И мой контроллер:
class RollCallController extends Controller
{
public function rollCallSave(Request $request)
{
$data = json_decode($request->input('data')) ;
$rollCall = new RollCall();
$rollCall->stdId = $data->stdId;
$rollCall->rollCall = $data->rollCall;
$rollCall->save((array)$data);
return response()->json(['data' => $data]);
}
}
У меня 'dd ($ data)', это дает мне следующее:
array:10 [
0 => {#206
+"stdId": "10"
+"rollCall": "1"
}
1 => {#201
+"stdId": "9"
+"rollCall": "1"
}
2 => {#202
+"stdId": "8"
+"rollCall": "1"
}
3 => {#208
+"stdId": "7"
+"rollCall": "1"
}
4 => {#209
+"stdId": "6"
+"rollCall": "1"
}
]
Это ошибка, которую я получаю при попытке отправить:
{message: "Trying to get property 'stdId' of non-object", exception: "ErrorException",…}
exception: "ErrorException"
file: "C:\laravel\school\app\Http\Controllers\RollCallController.php"
line: 20
messag
e: «Попытка получить свойство 'stdId' не-объекта"