如何在laravel中提交带有ajax请求的弹出窗体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在laravel中提交带有ajax请求的弹出窗体相关的知识,希望对你有一定的参考价值。

我的Ajax代码

            Query(document).ready(function(){
            jQuery('#password_form').click(function(){
           $.ajaxSetup({
              headers: {
                  'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
              }
          });
           jQuery.ajax({
              url: "{{ url('/changepassword') }}",
              method: 'post',
              data: {
                 password: jQuery('#password').val(),
                 new_password: jQuery('#new_password').val(),
                 password_confirmation: jQuery('#password_confirmation').val()
              },
              success: function(result){
                 console.log(result);
              }});
           });
        }); 

我的控制器:

         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();

             return IlluminateSupportFacadesRedirect::to('mujucet')
                ->with("modal_message_success", "Password has been changed successfully");
        } else {
            return IlluminateSupportFacadesRedirect::to('mujucet')
                ->with("modal_message_danger", "wong old password");           
     }
    }
}

我有一个弹出窗口,有三个字段1-密码2- new_password 3- password_confirmation

在ajax我的表单提交之前,但我想提交带有ajax的表单,所以我的页面不应该重新加载,我的成功和错误消息应该显示在我的弹出窗体上,但是当我点击按钮重新加载时,值也没有提交。

我不知道我的ajax请求有什么问题。我们将非常感谢您的帮助!

在此先感谢您的帮助。

答案
 $("#myform").submit(function(e){
    e.preventDefault();
    //put your ajax here
 });

您需要使用上面的代码阻止表单提交。

另一答案

您的弹出提交按钮应该是按钮不提交

<button type="button" class="btn btn-primary" title="" 
id="btn_submit">add</button>

<script>
$('#btn_submit').click(function () {
var type = $('#contain-type').val(); // take your all values you want to send 

/*ajax call*/
$.post(baseUrl + '/admin/confirmation-mail(your route)',{"_token": "{{ 
csrf_token() }}", id: parameter, subject: parameter},
function (data, status) { 
alert(data);
});
)};
</script>

调节器

public function name(Request $request){
dd(request->all()); //add your php code
}

以上是关于如何在laravel中提交带有ajax请求的弹出窗体的主要内容,如果未能解决你的问题,请参考以下文章

修复Extjs5.1.4的弹出窗(window)BUG

DuiVision开发教程(18)-弹出窗

在 laravel 的弹出模式中更新数据

如何在 android studio 的弹出窗口内添加滚动的 listView?

window.open 里的resizable=no参数在火狐里无效!有啥方法在火狐里的弹出窗不能拖动大小吗?

请求参数为空,在提交带有图像的表单数据 AJAX 后