Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

271
Views
¿Cómo puede obtener valores de cuadro de lista dual seleccionados en Laravel?

Tengo un cuadro de lista dual en mi formulario de Laravel y quiero obtener esos valores que se toman del lado derecho. Actualmente, solo se toma 1 valor, pero si un usuario elige 3 valores, me gustaría que los 3 valores se almacenen en la base de datos. ¿Hay alguna manera de hacer esto?

Mi controlador:

 public function storesurvey(Request $request) { $energy = new Customer(); $energy->rank1 = $request->input('rank1'); $energy->comments = $request->input('comments'); $energy->save(); return redirect('/survey')->with('success', 'data added'); }

Mi vista:

 <div class="container"> <div class="jp-multiselect"> <div class="from-panel"> <select name="from[]" class="form-control" size="8" multiple="multiple"> <option value="1">Item 1</option> <option value="2">Item 2</option> <option value="3">Item 3</option> <option value="4">Item 4</option> <option value="5">Item 5</option> </select> </div> <div class="move-panel"> <button type="button" class="btn-move-all-right btn-primary"></button> <button type="button" class="btn-move-selected-right"></button> <button type="button" class="btn-move-all-left"></button> <button type="button" class="btn-move-selected-left"></button> </div> <div class="to-panel"> <select name="rank1" class="form-control" size="8" multiple="multiple"> </select> </div> </div> <script> $(".jp-multiselect").jQueryMultiSelection(); </script> <hr /> <!-- 2 --> </div>

¿Alguien podría explicar por qué solo se toma un valor y cómo puedo enviar todos los valores que están presentes a la derecha?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Para enviar valores múltiples desde una entrada seleccionada (o casillas de verificación con el mismo nombre), debe nombrar la entrada con [] como lo hizo en el form[]

 <select name="rank1[]" class="form-control" size="8" multiple="multiple">

Luego, en su controlador, debe tratarlo como una matriz.

Aquí usé un código json para convertir todos los valores de rango 1 en una cadena de valor único de formato json.

 public function storesurvey(Request $request) { $energy = new Customer(); $energy->rank1 = json_encode($request->input('rank1')); $energy->comments = $request->input('comments'); $energy->save(); return redirect('/survey')->with('success', 'data added'); }

Otra solución

También puedes hacer esto automáticamente usando Casting

-Cliente.php

 class Customer ..... { protected $casts = [ 'rank1' => 'array' ]; .... }

Luego, en su controlador, puede asignar una matriz al atributo rank1 directamente sin convertirlo

 public function storesurvey(Request $request) { $energy = new Customer(); $energy->rank1 = $request->input('rank1'); $energy->comments = $request->input('comments'); $energy->save(); return redirect('/survey')->with('success', 'data added'); }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!