[英]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.