【问题标题】:Submit button not in request bag提交按钮不在请求包中
【发布时间】:2018-11-03 07:24:21
【问题描述】:

我有一个带有“接受”和“拒绝”按钮的表单。当我提交表格时,我想看看订单是被接受还是被拒绝。我知道应该怎么做,但由于某种原因它不起作用。

表格:

<form action="{{ url('edi')}}/lv/{{ $customer->name }}" method="POST" class="form-inline">
    {{ csrf_field() }}
    <input type="hidden" name="file" value="{{ $edifile }}">
    <input type="hidden" name="doctype" value="order">
    <select name="ordertype" class="form-control">
        ...
    </select>
    <input type="submit" class="btn btn-warning" name="accept" value="Accept order">
    <input type="submit" class="btn btn-danger" name="decline" value="Decline order" onclick="confirm('Are you sure you want to DECLINE this order!');">
</form>

请求参数包:

+request: ParameterBag {#41 ▼
    #parameters: array:4 [▼
      "_token" => "bW5ancRgkgvFovCeQuVxzOiXIu75ng6zl5NYlEyc"
      "file" => "ORDER_20170706122126714_P2576090-1.xml"
      "doctype" => "order"
      "ordertype" => "0"
    ]
  }

如您所见,请求中没有提交按钮名称。

【问题讨论】:

    标签: php forms laravel post


    【解决方案1】:

    在我写这个问题时,我自己发现了问题:

    基本上的问题是,当提交表单时,我们有一个脚本会禁用表单中的所有提交按钮,因此用户不能两次提交相同的表单。在我们理解之前,一切听起来都很好——禁用的元素不会被提交”

    解决方案:

    我更改了脚本,以便它使用最初按下的按钮的名称创建输入 type="hidden"。

    附: 接受的答案中有一个很好的“经验法则”,我已经阅读过,如果你还没有阅读过,你也应该阅读:How can I tell which button was clicked in a PHP form submit?

    【讨论】:

      猜你喜欢
      • 2020-07-11
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-31
      • 1970-01-01
      • 2016-05-13
      • 1970-01-01
      相关资源
      最近更新 更多