Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Laravel中基于复选框选择插入多个数据_Php_Html_Laravel - Fatal编程技术网

Php 如何在Laravel中基于复选框选择插入多个数据

Php 如何在Laravel中基于复选框选择插入多个数据,php,html,laravel,Php,Html,Laravel,我被Laravel多重插入卡住了下面是我的代码 blade.php文件 @foreach($processess as $process) <tr> <td><input type="checkbox" name="select_process[]" class="

我被Laravel多重插入卡住了下面是我的代码

blade.php文件

     @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时,它工作正常非常感谢您。