Saliou MBALO
Saliou MBALO

Reputation: 169

How can I store dynamic input in Laravel

I have a project where I create dynamics inputs by using a script that add dynamic inputs. I do this and it's working nicely. Now my problem is how to store the variables in my database. My HTML:

   <div class="row" style="margin-bottom:5px;margin-top:10px;margin-left:10px;">

        <div class="col-lg-3">
        <input class="form-control" type="text" name="prenoms_et_nom_ref_1" id="prenoms_et_nom_ref_1" 
         placeholder="Prénoms et nom">
        </div>

       <div class="col-lg-3">
       <input class="form-control" type="text" name="lien_de_parente_reference_1" 
        id="lien_de_parente_reference_1" placeholder="Lien de parenté">
       </div>

       <div class="col-lg-3">
       <input class="form-control" type="text" name="numero_telephone_reference_1" 
       id="numero_telephone_reference_1" placeholder="N° de Téléphone">
      </div>

      <div class="col-lg-3">
          <button class="post-link btn btn-xs btn-success" id="add"  class="btn btn-xs btn-success" 
      style="margin-left:20px;margin-top:5px"><i class="fa fa-plus" aria-hidden="true"></i></button>
      </div>
      </div>

      <div class="row" style="margin-left:5px;margin-bottom:20px" id="dynamic_field">

      </div>
      

My Function code:

$(document).ready(function(){
      var maxField = 3; //Input fields increment limitation
      var i=1;
      $('#add').click(function(){
        if(i < maxField){
         i++;
          $('#dynamic_field').append('<div style="margin-bottom:5px;margin-top:10px;margin- 
     left:10px;" class="row" id="row'+i+'"><div class="col-lg-3"><input class="form-control" 
     type="text" id="prenom_et_nom_ref_'+i+'" name="prenom_et_nom_ref_'+i+'" placeholder="Prénom et 
     Nom"/></div><div class="col-lg-3"><input class="form-control" type="text" 
     id="lien_de_parente_ref_'+i+'" name="lien_de_parente_ref_'+i+'" placeholder="Lien de parenté"/> 
     </div><div class="col-lg-3"><input class="form-control" type="text" 
     id="numero_telephone_ref_'+i+'" name="numero_telephone_ref_'+i+'" placeholder="N° de 
     téléphone"/></div><div class="col-lg-3"><button type="button" name="remove" id="'+i+'" 
     class="btn btn-danger btn_remove fa fa-trash" aria-hidden="true"></button></div></div>');
     }
     else
             {
             alert('Vous ne pouvez ajouter que 3 références')
             }
     });
     $(document).on('click', '.btn_remove', function(){
          var button_id = $(this).attr("id");
          $('#row'+button_id+'').remove();
     });

     });

How can I edit the controller please.

public function store(StoreStagiaireRequest $request)
{
    $stagiaire = Stagiaire::create($request->all());

    $requestData = $request->all();

    return redirect()->route('admin.stagiaires.index');

}

Need a help please.

Upvotes: 0

Views: 177

Answers (1)

ERaufi
ERaufi

Reputation: 1663

  1. Name your inputs like this

    <input type="number" name="item_quantity[]" id="item_quantity" class="form-control">
    
  2. Then in your controller use for loop like this for saving it

    public function update_purchased_request_form(Request $request)
    {
        for ($i = 0; $i <> count($request->item_quantity); $i++) {
            $items=new your_table name;
            $items->item_quantity= $request->item_quantity[$i];
            $items->save();
        }
        return back();
    }
    

Upvotes: 1

Related Questions