【问题标题】:Ajax with laravel and jqueryAjax 与 laravel 和 jquery
【发布时间】: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">&times;</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


【解决方案1】:

你应该稍微改变一下你的事件监听器:

收听表单上的submit() 事件,并确保通过在回调末尾添加以下行来阻止正常的表单提交:return false;

如果它仍然没有执行任何操作,请检查您的控制台是否有错误输出。

【讨论】:

    猜你喜欢
    • 2011-09-20
    • 2017-03-18
    • 2013-10-05
    • 2020-04-06
    • 2015-07-29
    • 2011-09-04
    • 2013-11-24
    • 1970-01-01
    • 2020-04-26
    相关资源
    最近更新 更多