Laravel 5.1一个表单两个提交按钮


Laravel 5.1 one form two submit buttons

我使用的是Laravel 5.1,我想做一个有两个提交按钮的表单-保存和保存草稿。

但是当我发布我的表单时,我有除了提交值以外的所有字段。

我读到Laravel不会把提交按钮值在POST当表单通过ajax发送,所以你能帮我如何做到这一点?

我已经尝试了一些代码如下:

{!! Form::open(['url' => 'offer/create', 'method' => 'post', 'id' => 'offer-create']) !!}
....
here are my fields
....
{!! Form::submit( 'Save', ['class' => 'btn btn-default', 'name' => 'save']) !!}
{!! Form::submit( 'Save draft', ['class' => 'btn btn-default', 'name' => 'save-draft']) !!}

在我的routes.php中我有:

Route::controller('offer', 'OfferController');

Thanks in advance

您可以为提交按钮使用相同的名称和不同的值属性

//例子:

{!! Form::submit( 'Save', ['class' => 'btn btn-default', 'name' => 'submitbutton', 'value' => 'save'])!!}
{!! Form::submit( 'Save draft', ['class' => 'btn btn-default', 'name' => 'submitbutton', 'value' => 'save-draft']) !!}

//控制器:

switch($request->submitbutton) {
    case 'save': 
        //action save here
    break;
    case 'save-draft': 
        //action for save-draft here
    break;
}

最好的方法之一是使用隐藏类型的输入,然后单击按钮将值附加到该输入,并在控制器端的请求参数中获取该值。然后使用if和else条件运行查询。

这是隐藏输入:

<input id="submittype" type="hidden" name="submit_type" value=""></input>
这是提交按钮div:
    <div class="text-right">
                <button class="btn btn-sm btn-primary" onclick="saveandexit()" type="submit">@lang('save &amp; exit')</button>
                <button class="btn btn-sm btn-primary" onclick="save()" type="submit">@lang('save')</button>
            <div>
This is script:
        <script>
        function save() {
              document.getElementById("submittype").value = "save";
           }
        function saveandexit() {
            document.getElementById("submittype").value = "save-and-exit";
        }
        </script>
    @endsection

,然后进入控制器函数:

dd($请求→所有());