Я пытаюсь обновить данные, но получаю ошибку, не удалось загрузить сообщение.
Код AJAX:
jQuery(document).ready(function($) {
$('#update-data').on('click',function(){
alert("run");
// e.preventDefault(e);
$.ajax({
type: "POST",
url: "teachers/" + $('#update-data').attr("value"),
dataType: 'json',
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
data : $(this).serialize(),
beforeSend: function() {
},
success: function (data) {
alert("updated");
},
});
});
});
просмотр:
, когда я пробую все текстовые поля в div, я получаю сообщение об ошибке при загрузке сообщения,
<div id="update-form">
//all text fields
<button type="button"name="id" value="{{@$teacher->id}}" id="update-data" >UPDATE</button>
</div>
, но когда я помещаю все в форму, мои данные обновляются правильно, но в этом случае ajaxКод полностью игнорируется, и обновляется только последняя запись.
<form action="@if(isset($teacher)) {{route('teachers.update', $teacher->id)}} @else {{route('teachers.store')}}
@endif" method="post" id="update-form" autocomplete="off" enctype="multipart/form-data" >
<button type="submit" name="id" value="{{@$teacher->id}}" id="update-data" > UPDATE</button>
</form>
Ошибка консоли:
app.js:10216 POST http://todolist.local/teachers/729 405 (Method Not Allowed)
app.js:10216 XHR failed loading: POST "http://todolist.local/teachers/729".
javascript?v=1567677915:4 XHR finished loading: GET "http://todolist.local/_debugbar/open?op=get&id=X15228e3cd6c2213f70bded7c0a69583b".
Обновление контроллера:
public function update(TeacherRequest $request, $id)
{
$teacher = Teacher::find($id);
if($teacher->save()){
return response()->json([
'status' => 'success',
'msg' => 'esecond has been updated'
]);
}
}
web.php:
Route::get('/', 'TeachersController@index')->name('home');
Route::resource('teachers', 'TeachersController');