繁体   English   中英

如何在Laravel 5.5中使用Ajax请求保存数据

[英]How to save data using ajax request in Laravel version 5.5

我的ajax电话:

$('#password_change_form').submit(function(e) {
    e.preventDefault();
    var saveThis = this;
    $.ajax({
        type: "POST",
        url: "{{ url('/changepassword') }}",
        data: $(saveThis).serialize(),
        success: function(data) {
            $("#password_change_form").trigger("reset");
            alert(data);
        }
    });
}),

我的控制器方法:

public function changepassword(Request $request){
    $user = Auth::guard()->user();
    $request_data = $request->All();
    $validator = $this->admin_credential_rules($request_data);
    if($validator->fails()) {
        $errors = $validator->errors();
        $errors = json_decode($errors);

        return response()->json([
            'success' => false,
            'message' => $errors
        ], 422);
    } else {

        $current_password = $user->password;
        if(md5($request_data['password']) == $current_password) {
            $user_id = $user->id;
            $obj_user = User::find($user_id);
            $obj_user->password = md5($request_data['new_password']);
            $obj_user->save();

            $msg = "password has been changed";
            return response()->json(array('change_password'=> $msg), 200);
        } else {
            $error = array('error' => array('Heslo, které jste zadali, je neplatné.'));
            return response()->json([
                'modal_message_danger' , "Heslo, které jste zadali, je neplatné.",
                'message' => $error
            ], 422);
        }
    }
}

当我点击弹出表单上的“提交”按钮时,它将向我显示HTML警报。 我还附有此警报的屏幕截图:在这里,我的数据没有保存。 我对此问题感到困惑。 关于这个问题,请帮助我。 非常感谢您的帮助!

这是我的警报的屏幕截图: 警报

问题是,如果您的javascript位于blade.php文件中,而您的javascript不在blade.php中,那么您将无法使用blade语法:

url: "{{ url('/changepassword') }}",

护腕或仅在刀片模板区域内有效,不在您的js中,只需将其替换为此

url: "/changepassword",

进一步添加检查,是否在控制器方法中像这样从javascript中获取任何数据

dd($request->all());

如果确实输出了您的数据,则您尝试发送的ajax可以正常工作,否则就无法正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM