Laravel - 通过表单操作批准和拒绝同一控制器的一个表单上的按钮

时间:2017-02-10 11:55:49

标签: php html forms laravel

我的表单上有两个按钮,ApproveDecline

{{ Form::open(['route' => ['holidays.update', $holidayRequest->id]]) }} 
<button type="submit" class="btn btn-success">
   <i class="fa fa-check"></i>Approve
</button>

<button type="submit" class="btn btn-danger">
   <i class="fa fa-times"></i>Decline
</button>
{{ Form::close() }}

有一个名为$holidayRequest的对象,我已从控制器传递给此表单,我的目的是将$holidayRequest->status的值发送回控制器。也就是说,应该发生以下情况之一:

  1. 用户点击Approve: $holidayRequest->status == 'approved'将被发送到控制器。

  2. 用户点击拒绝: $holidayRequest->status == 'declined'会发送给控制器。

  3. 我应该使用属性formaction来实现此目标还是其他目标?如何尽可能少或不使用JS来解决这个问题?

2 个答案:

答案 0 :(得分:0)

使用jquery()尝试这样的事情:

Html:

<button type="button" id="approved" class="btn btn-success response">
   <i class="fa fa-check"></i>Approve
</button>

<button type="button" id="declined" class="btn btn-danger response">
   <i class="fa fa-times"></i>Decline
</button>

Jquery的:

$('.response').click(function(){
    var resposne = $(this).attr('id');
    // It gives you: approved or declined

    // make an ajax call with this response and update the data in database
});

注意:不要忘记在页面中包含jquery库。

答案 1 :(得分:0)

如果您不想要javascript,请尝试逐个提交。

{{ Form::open(['route' => ['holidays.update', $holidayRequest->id]]) }} 
<input type="hidden" status="approved"/>
<button type="submit" class="btn btn-success">
   <i class="fa fa-check"></i>Approve
</button>
{{ Form::close() }}

{{ Form::open(['route' => ['holidays.update', $holidayRequest->id]]) }} 
<input type="hidden" status="declined"/>
<button type="submit" class="btn btn-danger">
   <i class="fa fa-times"></i>Decline
</button>
{{ Form::close() }}