Php 如何在Laravel中基于复选框选择插入多个数据
我被Laravel多重插入卡住了下面是我的代码 blade.php文件Php 如何在Laravel中基于复选框选择插入多个数据,php,html,laravel,Php,Html,Laravel,我被Laravel多重插入卡住了下面是我的代码 blade.php文件 @foreach($processess as $process) <tr> <td><input type="checkbox" name="select_process[]" class="
@foreach($processess as $process)
<tr>
<td><input type="checkbox" name="select_process[]" class="select_process" value="{{$process->id}}"></td>
<td>{{$count}}</td>
<td><input type="hidden" name="product_id[]" class="product_id" value="{{$process->product_id}}">{{$process->product_name}}</td>
<td><input type="hidden" name="product_stock_id[]" class="product_stock_id" value="{{$process->id}}">{{$process->product_name}} {{$process->id}}</td>
<td><input type="hidden" name="purchase_date[]" class="purchase_date" value="{{$process->purchase_date}}">{{date('M j Y',strtotime($process->purchase_date))}}</td>
<td><input type="hidden" name="expire_date[]" class="expire_date" value="{{$process->expire_date}}">{{date('M j Y',strtotime($process->expire_date))}}</td>
<td>
<td>{{$process->status ? $process->status : '-'}}</td>
</tr>
@endforeach
@foreach($processess作为$process)
{{$count}}
{{$process->product_name}
{{$process->product_name}{{{$process->id}}
{{date('mjy',strotime($process->purchase_date))}
{{date('mjy',strotime($process->expire_date))}
{{$process->status?$process->status:'-'}
@endforeach
这是我的控制器文件
for($i = 0; $i < count($data['select_process']); $i++) {
DB::table('processing_data')
->insert([
'product_id' => $data['product_id'][$i],
'product_stock_id' => $data['product_stock_id'][$i],
'purchase_date' => $data['purchase_date'][$i],
'expire_date' => $data['expire_date'][$i],
'created_at' => date('Y-m-d h:i:s')
]);
}
for($i=0;$i插入([
'product_id'=>$data['product_id'][$i],
“产品库存id”=>$data[“产品库存id”][$i],
“购买日期”=>$data[“购买日期”][$i],
'expire\u date'=>$data['expire\u date'][$i],
'创建时间'=>日期('Y-m-d h:i:s')
]);
}
当用户选中复选框时,我想将选中的复选框行存储到数据库中。当用户选择所有复选框时,我得到了多个复选框的解决方案,它将正确存储所有数据,但当用户选择表的最后一行时,它存储第一行的值。我需要存储选中的复选框值首先,您需要在隐藏数据中定义
$process->id
,将其添加到inputname[{{{$process->id}}]
,如下所示:
@foreach($processess as $process)
<tr>
<td><input type="checkbox" name="select_process[{{$process->id}}]" class="select_process" value="{{$process->id}}"></td>
<td>{{$count}}</td>
<td><input type="hidden" name="product_id[{{$process->id}}]" class="product_id" value="{{$process->product_id}}">{{$process->product_name}}</td>
<td><input type="hidden" name="product_stock_id[{{$process->id}}]" class="product_stock_id" value="{{$process->id}}">{{$process->product_name}} {{$process->id}}</td>
<td><input type="hidden" name="purchase_date[{{$process->id}}]" class="purchase_date"
value="{{$process->purchase_date}}">{{date('M j Y',strtotime($process->purchase_date))}}</td>
<td><input type="hidden" name="expire_date[{{$process->id}}]" class="expire_date" value="{{$process->expire_date}}">{{date('M j Y',strtotime($process->expire_date))}}
</td>
<td>
<td>{{$process->status ? $process->status : '-'}}</td>
</tr>
@endforeach
foreach(request()->select_process as $selected) {
DB::table('processing_data')
->insert(
[
'product_id' => $data['product_id'][$selected],
'product_stock_id' => $data['product_stock_id'][$selected],
'purchase_date' => $data['purchase_date'][$selected],
'expire_date' => $data['expire_date'][$selected],
'created_at' => date('Y-m-d h:i:s'),
]
);
}
我假设
$data
是request()->all()
请查看您请求的post数据,您会看到发生了什么,因为选中复选框sensd data时,您希望将整个数据作为数组发送,当您发布数据,但每个输入元素都有一个值,并在php上表示为数组,但如果未选中复选框,则复选框没有值,并且数组的工作方式与预期不符,因此您应该发布选中的数据结构或隐藏的输入[文本]当您选中/取消选中并将其设置为值thank you@Muhammad时,它工作正常非常感谢您。