【问题标题】:Laravel 5.1 one form two submit buttonsLaravel 5.1 一个表单两个提交按钮
【发布时间】:2017-01-05 11:01:30
【问题描述】:

我正在使用 Laravel 5.1,我想制作一个带有两个提交按钮的表单 - 保存和保存草稿。

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

我了解到,当表单通过 ajax 发送时,Laravel 不会将提交按钮的值放入 POST,所以请您帮我解决一下?

我尝试了如下代码:

{!! 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');

提前致谢

【问题讨论】:

  • 您能提供更多信息吗?这个问题与 AJAX 有什么关系?由于 Laravel 本身并没有将任何内容放入 $_POST 数组中,您能否进一步解释一下您是如何检查其中一个按钮是否已提交?

标签: php forms laravel-5


【解决方案1】:

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

// 例子:

{!! 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;
}

【讨论】:

  • 这将生成按钮名称但不会生成按钮值,因此这将不起作用
  • 它对我有用....
【解决方案2】:

最好的方法之一是使用隐藏类型的输入,然后单击按钮将值附加到该输入并在控制器端的请求参数中获取该值。 然后使用 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($request->all());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 2016-01-18
    相关资源
    最近更新 更多