在Laravel中实现动态表单保存时如何处理每行多选下拉表格
P粉301523298
P粉301523298 2023-08-31 10:43:09
[MySQL讨论组]

在我的表单中,我有一个动态表格,每一行中都有相同名称的多选下拉菜单color_id[]和size_id[]。我不知道如何将多个选择的值保存为每一行中的逗号分隔的值存储在数据库中。我在这里尝试保存到数据库,但是没有起作用。

HTML代码:

<table><tbody><td><select name="color_id[]" class="select2" id="color_id" style="width:200px; height:100px;" required multiple></select></td><td> <select name="size_id[]" class="select2" id="size_id" style="width:200px; height:100px;" required multiple> </select></td></tbody></table>

在控制器中保存的Laravel代码:

$class_ids = $request->input('class_ids');
 for($x=0; $x<count($class_ids); $x++) {
    # code...
    $color_ids = implode(',', $request->color_id[$x]);
    $size_ids = implode(',', $request->size_id[$x]);
     $data3[]=array(
            
        'bom_code'=>$TrNo, 
        'bom_date'=>$request->bom_date, 
        'cost_type_id'=>$request->cost_type_id,
        'Ac_code'=>$request->Ac_code, 
        'season_id'=>$request->season_id,
        'currency_id'=>$request->currency_id, 
        'item_code' => $request->item_codes[$x],
        'class_id' => $request->class_ids[$x],
        'description' => $request->descriptions[$x],
        'color_id' => $color_ids,
        'size_array' => $size_ids,
        'consumption' => $request->consumptions[$x],
        'unit_id'=> $request->unit_ids[$x],
        'rate_per_unit' => $request->rate_per_units[$x],
        'wastage' => $request->wastages[$x],
        'bom_qty' => $request->bom_qtys[$x],
        'total_amount' => $request->total_amounts[$x],
       
         );
        }
      BOMSewingTrimsDetailModel::insert($data3);
P粉301523298
P粉301523298

全部回复(1)
P粉098417223

我在每一行的相同列中添加了两个隐藏的输入框,名称分别为color_arrays[]和size_arrays[]。我编写了以下的JavaScript函数,用于从颜色和尺寸的多选下拉框中获取逗号分隔的值,并将隐藏输入框的值保存到数据库。

$(document).on('change', 'select[name^="color_id[]"],select[name^="size_id[]"]', function(){CalculateQtyRowPros2($(this).closest("tr"));});

function CalculateQtyRowPros2(row){   
var color_id=row.find('select[name^="color_id[]"]').val().join(",");
var size_id=row.find('select[name^="size_id[]"]').val().join(",");
row.find('input[name^="color_arrays[]"]').val(color_id);
row.find('input[name^="size_arrays[]"]').val(size_id);}

这对我起作用。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号