Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

273
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda