搜尋

首頁  >  問答  >  主體

在Laravel中實現動態表單保存時如何處理每行多選下拉表格

<p>在我的表單中,我有一個動態表格,每一行中都有相同名稱的多重選擇下拉式選單color_id[]和size_id[]。我不知道如何將多個選擇的值保存為每一行中的逗號分隔的值儲存在資料庫中。我在這裡嘗試保存到資料庫,但是沒有起作用。 </p> <p>HTML代碼:</p> <pre class="brush:php;toolbar:false;"><table><tbody><td><select name="color_id[]" class="select2" id=" id=" id=" id=" id=" id=" id=" id=" id==d ;color_id" style="width:200px; height:100px;" required multiple></select></td><td> <</select></td><td> <select name=></td><td> <select name=></td><td> <select name=></td>&.. select2" id="size_id" style="width:200px; height:100px;" required multiple> </select></td></Hbody;< <p>在控制器中儲存的Laravel程式碼:</p> <pre class="brush:php;toolbar:false;">$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);</pre>
P粉301523298P粉301523298481 天前553

全部回覆(1)我來回復

  • P粉098417223

    P粉0984172232023-09-01 00:17:50

    我在每一行的相同列中新增了兩個隱藏的輸入框,名稱分別為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);}

    這對我起作用。

    回覆
    0
  • 取消回覆