Maison  >  Questions et réponses  >  le corps du texte

Comment gérer les formulaires déroulants à sélection multiple pour chaque ligne lors de la mise en œuvre de l'enregistrement dynamique des formulaires dans Laravel

<p>Dans mon formulaire, j'ai une table dynamique avec des listes déroulantes à sélection multiple color_id[] et size_id[] avec le même nom dans chaque ligne. Je ne sais pas comment enregistrer plusieurs valeurs sélectionnées sous forme de valeurs séparées par des virgules dans chaque ligne stockée dans la base de données. J'ai essayé de sauvegarder dans la base de données ici mais cela n'a pas fonctionné. </p> <p>Code HTML : </p> <pre class="brush:php;toolbar:false;"><table><tbody><td><select name="color_id[]" class="select2" id=" ;color_id" style="largeur:200px;hauteur:100px;"obligatoire multiple></select></td> <select name="size_id[]" select2" id="size_id" style="width:200px height:100px;" requis multiple</select></td></tbody></table></pre> <p>Code Laravel enregistré dans le contrôleur :</p> <pre class="brush:php;toolbar:false;">$class_ids = $request->input('class_ids'); pour($x=0; $x<count($class_ids); $x++) { #code... $color_ids = imploser(',', $request->color_id[$x]); $size_ids = imploser(',', $request->size_id[$x]); $data3[]=tableau( 'bom_code'=>$TrNon, '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, 'code_article' => $request->codes_article[$x], 'class_id' => $request->class_ids[$x], 'description' => $requête->descriptions[$x], 'color_id' => 'size_array' => $size_ids, 'consommation' => $request->consommations[$x], 'id_unité'=> $request->id_unité[$x], 'rate_per_unit' => $request->rate_per_units[$x], 'gaspillage' => $request->gaspillage[$x], 'bom_qty' => $request->bom_qtys[$x], 'montant_total' => $request->montants_total[$x], ); } BOMSewingTrimsDetailModel::insert($data3);</pre>
P粉301523298P粉301523298416 Il y a quelques jours506

répondre à tous(1)je répondrai

  • P粉098417223

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

    J'ai ajouté deux zones de saisie masquées nommées color_arrays[] et size_arrays[] dans la même colonne de chaque ligne. J'ai écrit la fonction JavaScript suivante pour obtenir les valeurs séparées par des virgules à partir d'une liste déroulante à sélection multiple pour la couleur et la taille et enregistrer la valeur de la zone de saisie masquée dans la base de données.

    $(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);}

    Cela fonctionne pour moi.

    répondre
    0
  • Annulerrépondre