我使用的是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 & 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($请求→所有());