在laravel 5.4中的bootstrap模式内提交表单

时间:2017-07-13 17:43:57

标签: laravel-5.4

我正在研究一个项目并面临一个问题,我在互联网上找不到任何具体的解决方案 我想在数据库中保存数据形式的bootstrap模式,但是当我按下保存按钮时,它在第251行给我 MethodNotAllowedHttpException 这是我的HTML代码

"Client Version" -like "14.*"
这是我的ajax代码

<div class="container">
    <div class="row">
    <div class="col-md-8 col-md-offset-2">
        <h3>معلومات عمومی سیستم</h3>
        <ul class="nav nav-tabs">
            <li class="active"><a data-toggle="tab" href="#home">دونر ها</a></li>
            <li><a data-toggle="tab" href="#menu1">ولایت ها</a></li>
            <li><a data-toggle="tab" href="#menu2">ولسوالی ها</a></li>
        </ul>

        <div class="tab-content">
            <div id="home" class="tab-pane fade in active">
                <button class="btn btn-success" data-toggle="modal" data-target="#myModal"><strong>ثبت دونر جدید </strong><i class="fa fa-plus"></i></button>
                
        </div>

       </div>
   </div>
</div>


<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog"
     aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <!-- Modal Header -->
            <div class="modal-header" style="color: #1abc9c;">
                <button type="button" class="close"
                        data-dismiss="modal">
                    <span aria-hidden="true">&times;</span>
                    <span class="sr-only">Close</span>
                </button>
                <h3 class="modal-title" style="color: white">ثبت دونر جدید به سیستم</h3>
            </div>

            <!-- Modal Body -->
            <div class="modal-body">

                <form class="form-horizontal" role="form" id="form-direction" method="post" action="{{action('\App\Http\Controllers\DonorController@store')}}">
                    {{csrf_field()}}
                    <div class="form-group">
                        <label  class="col-sm-2 control-label" for="name">نام دونر</label>
                        <div class="col-sm-10">
                            <input type="text" class="form-control"  name="name" placeholder="نام دونر"/>
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="col-sm-2 control-label" for="description" >معلومات راجع به دونر</label>
                        <div class="col-sm-10">
                            <textarea  class="form-control" name="description" placeholder="معلومات راجع به دونر"> </textarea>

                        </div>
                    </div>

                    <div class="form-group">
                        <label class="col-sm-2 control-label" for="phone" >شماره تماس</label>
                        <div class="col-sm-10">
                            <input type="text" class="form-control" name="phone" placeholder="شماره تماس"/>
                        </div>
                    </div>

                    <div class="form-group">
                        <label class="col-sm-2 control-label" for="email" >ایمیل آدرس</label>
                        <div class="col-sm-10">
                            <input type="email" class="form-control" name="email" placeholder="ایمیل آدرس"/>
                        </div>
                    </div>
                    <br>

                    <button type="submit" class="btn btn-primary lead" id="mysaveButton">ثبت</button>


                </form>

            </div>

        </div>
    </div>
</div>

这是我的路线

$("#mysaveButton").click(function(e){
        e.preventDefault()
        var $form = $("#form-direction");
        $.ajax({
            method: $form.attr('post'),
            url: $form.attr('\App\Http\Controllers\DonorController@store'),
            data: $form.serialize(),
            success: function (data, status) {
                if(data.error){
                    return;
                }
                alert(data.success); // THis is success message
                $('#myModal').modal('hide');  // Your modal Id
            },
            error: function (result) {

            }
        });

    });

但我不确定这是否正确

这是我的控制器

Route::get('donors','DonorController@store');

一切正常但是当我按下保存按钮时它会说  (1/1)MethodNotAllowedHttpException 在RouteCollection.php中(第251行) 任何人都有任何想法   你的帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

这有很多错误......

查看您的<form>(特别是附加的属性):

<form 
  class="form-horizontal" 
  role="form" 
  id="form-direction" 
  method="post" 
  action="{{action('\App\Http\Controllers\DonorController@store')}}">

$("#mysaveButton").click(function(e){ ... })方法中,您正在调用

...
method: $form.attr('post'),
url: $form.attr('\App\Http\Controllers\DonorController@store'),

这两个都会返回undefined,因为它们不是attributes元素上的<form>

您应该使用

...
method: $form.attr('method'),
url: $form.attr('action'),