Laravel中如何通过单个按钮提交选中的复选框ID
解决方案
问题出在你把每个复选框都单独放在了一个<form>标签里,导致无法通过单个按钮批量提交选中的ID。正确的做法是将所有复选框和提交按钮放在同一个表单内,具体修改如下:
修改后的Blade模板代码
<form action="{{route('admin.pks.calculate')}}" method="POST"> @csrf <div class="col-lg-4"> <!-- 修正按钮type为submit,原type="submit1"是无效的 --> <input id="tea-submit" type="submit" class="btn btn-primary mt-35" name="submit1" value="Send"> </div> @foreach ($pks as $pk) <tr> <td class="text-center"> <input type="checkbox" name="pk_id[]" value="{{$pk->id}}"> {{ $pk->id }} </td> </tr> @endforeach </form>
后端代码无需调整
你的PHP接收逻辑已经正确,直接保留即可:
public function calculate(Request $request) { $pk_ids = $request->input('pk_id'); dd($pk_ids); }
关键说明
- 整个表单只需要一个
<form>标签,包裹所有需要提交的元素(复选框和提交按钮) @csrf令牌只需在表单内出现一次即可- 提交按钮的
type必须设置为submit,原type="submit1"是无效值,无法触发表单提交 - 复选框的
name保持pk_id[]不变,后端才能正确接收选中ID的数组
内容的提问来源于stack exchange,提问作者kennedyforf
相关产品推荐
相关产品推荐

