Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

274
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda