【发布时间】:2018-03-13 22:24:37
【问题描述】:
我是 laravel 的新手,甚至是 ajax 的新手,我正在尝试从 ajax 进行更新,但我无能为力,它保持冻结状态,几秒钟后,url 会使用发生在它身上的数据进行更新,但是在基本数据没有任何反应。如果您能更正代码,我将不胜感激,因为我确信这是由于我缺乏经验而出现问题的代码,非常感谢您
路线:
Route::name('appointments.update')->put('/appointment/$id', 'AppointmentController@update');
html:
<div class="modal fade" id="UpdateEventModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="myModalLabel">Update</h4>
</div>
<form class="form-horizontal">
<div class="modal-body">
@include('appointments._form-appointments')
</div>
<div class="modal-footer">
<div class="col-md-12 form-group">
{{ Form::submit('Update',['class' => 'btn btn-primary','id' => 'btn-modal-update',]) }}
{{ Form::button('Close',['class' => 'btn btn-default', 'data-dismiss' => 'modal']) }}
</div>
</div>
</form>
</div>
</div>
ajax:
$(document).ready(function() {
$('#btn-modal-update').click(function(){
var id = $('#appointment_id').val();
var route="{{url('appointments.update')}}/"+id+"";
$.ajax({
type:'PUT',
headers:{"Authorization": localStorage.getItem('token')},
url:route,
dataType:'json',
data: {startTime: $('input#startTime').val(), finalTime: $('input#finalTime').val(), patient_id: $('select[name="patient_id"').val(),
user_id: $('select[name="user_id"').val(event.user_id), date: $('input#date').val(), appointment_id: $('#appointment_id').val()},
success:function(data){
if(data.success == 'true'){
alert('updated');
}
},
error:function(data){
alert('not updated');
}
});
});
});
控制器:
public function update(Request $request, $id)
{
if($request->ajax()){
$appointment = Appointment::find($id);
$appointment->date = $request->date;
$appointment->startTime = $request->startTime;
$appointment->finalTime = $request->finalTime;
$appointment->clinic_id = $request->clinic_id;
$appointment->user_id = $request->user_id;
$appointment->patient_id = $request->patient_id;
$result = $appointment->save();
if (result) {
return response()->json(['success'=>'true']);
}
else{
return response()->json(['success'=>'false']);
}
}
}
【问题讨论】:
-
'/appointment/$id'在你的路由文件中应该是'/appointment/{id}'。看看对你有没有帮助。如果不让我知道,以便我可以阅读整个代码:) -
@Charlie 感谢您的回答,我做了您告诉我的更改,但仍然无法正常工作,感谢您的时间和帮助!
-
var route="{{url('appointments.update')}}/"+id+"";渲染的 HTML 说明了什么?
标签: php jquery ajax laravel laravel-5