【发布时间】:2018-04-01 12:43:46
【问题描述】:
我正在尝试更新我的“部分”项目列表,但它只更新第一个项目,并且更新不适用于列表中的其他项目,并获得除第一个项目外的“MethodNotAllowedException”。我没有找到原因。请有人帮我找出原因吗?
index.blade.php
<td class="text-center">
<a href="#" data-toggle="modal" data-target="#editModal-{{ $section->id }}"> <i class="fa fa-pencil text-warning m-r-10"></i> </a>
<!-- Edit Modal -->
<div class="modal fade" id="editModal-{{ $section->id }}" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel1">
<div class="modal-dialog" role="document">
<div class="modal-content">
<form id="editForm" method="POST">
@method('PUT')
@csrf
<div class="modal-header text-left">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="exampleModalLabel1">Update Section</h4>
</div>
<div class="modal-body">
<div id="updatesuccess-msg" class="hide text-left">
<div class="alert alert-success alert-dismissible fade in" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<strong>Success:</strong> Section Updated !
</div>
</div>
<div class="form-group text-left">
<label for="section" class="control-label">Section Name:</label>
<input type="text" name="section" value="{{ $section->section }}" class="form-control" >
<input type="hidden" name="section_id" class="sec_id" value="{{ $section->id }}">
<span class="text-danger">
<small id="updateinput-error"></small>
</span>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</form>
</div>
</div>
</div>
阿贾克斯
$("#editForm").click(function(event) {
event.preventDefault();
var form = $("#editForm");
var formData = form.serialize();
var sectionId = parseInt($('.sec_id').val());
$( '#input-error' ).html( "" );
$.ajax({
url:'{{ url("admin/section") }}' + '/' + sectionId,
method:'PUT',
data:formData,
success:function(data) {
console.log(data);
if(data.errors) {
if(data.errors.section){
$( '#updateinput-error' ).html( data.errors.section[0] );
}
}
if(data.success) {
$('#updatesuccess-msg').removeClass('hide');
setInterval(function(){
$('#editForm').modal('hide');
$('#updatesuccess-msg').addClass('hide');
location.reload();
}, 1000);
}
},
});
});
SectionController.php
public function update(Request $request, $id)
{
$validator = Validator::make($request->all(), [
'section' => 'required|max:255|unique:sections',
]);
$sectionId = $request->input('section_id');
if ($validator->passes()) {
// Update your section in database
$data = Section::find($sectionId);
$data->section = $request->section;
$data->save();
return Response::json(['success' => '1']);
//return response()->json($data);
}
return Response::json(['errors' => $validator->errors()]);
}
web.php
Route::group(['prefix' => 'admin', 'middleware' => ['auth:admin'], 'as' => 'admin.'], function () {
Route::resource('section', 'Admin\HR\SectionController');
});
【问题讨论】:
-
试过
$("#editForm").submit(function(event) {? -
是的,我试过了。
-
var sectionId = parseInt($('.sec_id').val());总是得到 1 作为它的值。
-
@RashedHasan 你修好了么???
标签: php jquery ajax laravel methods