Здравствуйте.
Делаю ajax crud и столкнулся с проблемой получения данных форм через post.
<form class="edit-parser-form" id="edit-parser-form" method="POST" >
<meta name="csrf-token" content="{{ csrf_token() }}">
<input type="hidden" name="parser_id" id="parser_id">
<div class="form-group">
<input type="text" name="url" class="form-control url" id="url" placeholder="URL инстаграм страницы">
</div>
<div class="form-group">
<input type="checkbox" id="is_active" name="is_active"> Активность
</div>
<div class="form-group">
<input type="checkbox" id="publish" name="publish"> Публиковать?
</div>
</form>
Ajax
$('#update-btn').on('click', function (e) {
e.preventDefault();
var input = $('#edit-parser-form').serializeArray();
var parserId = $('#parser_id').val();
var route = '{{ route('parsers.store') }}';
//
$.ajax({
type: 'POST',
url: route,
dataType: 'json',
data: {
input: input
},
success: function (data) {
$('#exampleModal').modal('hide');
},
error: function (data) {
console.log('Ошибки:', data);
}
});
});
Контроллер
public function store(Request $request)
{
dd($request->input('input')[1]['value']); //получается получить значение поля таким кривым способом
if($request->ajax()){
$parserId = array('id' => $request->parser_id);
$parserData = array(
'url' => $request->url),
'is_active' => $request->is_active, // но не могу понять почему не работает этот.
'publish' => $request->publish
);
dd($parserData);
Parser::updateOrCreate($parserId, $parserData);
return response()->json('success', 'Успешная операция над парсером');
}
}
dd $request->all()
array:1 [
"input" => array:3 [
0 => array:2 [
"name" => "parser_id"
"value" => "2"
]
1 => array:2 [
"name" => "url"
"value" => "govnonapalke.com"
]
2 => array:2 [
"name" => "is_active"
"value" => "on"
]
]
]