Rellenar un Input Seleccionando Datos de un Select en Laravel [SOLUCIONADO]

El reto de la interacción entre Select e Input en Laravel

En el mundo de la programación web, una tarea común es llenar un input al seleccionar datos de un select. En el contexto del popular marco PHP, Laravel, esta operación puede presentar su propio conjunto de desafíos y soluciones.

El papel de AJAX en la funcionalidad de Select-Input

Aquí es donde AJAX entra en juego. AJAX, o Asynchronous JavaScript and XML, es una técnica que permite a la página web actualizar y recuperar datos del servidor sin necesidad de recargar la página. Esta característica es crucial para la funcionalidad que estamos buscando. Implementaremos AJAX en Laravel para llenar el input en función de la selección del usuario.

Código para llenar un input al seleccionar datos de un select en Laravel

Vamos a la implementación del código. Primero, necesitamos establecer las rutas en Laravel. Para nuestro ejemplo, vamos a crear dos rutas: una para la vista y otra para la petición AJAX.

  Route::get('/selectInput', function() {  
    return view('selectInput');  
  });  
  
  Route::post('/selectInput/fill', 'SelectInputController@fill')->name('ajaxFill');

Mezclando AJAX con Laravel

Ahora, procedamos a implementar nuestra vista y nuestro controlador. En la vista, tendremos nuestro select y nuestro input. También incorporaremos AJAX para realizar la solicitud de llenado al controlador.

  <select id="selector">
    <option value="1">Opción 1</option>
    <option value="2">Opción 2</option>
  </select>

  <input id="inputFill" type="text" value="" />

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script>
  $('#selector').change(function() {
    $.post('{{route('ajaxFill')}}', {_token:'{{csrf_token()}}', selector:$(this).val()}, function(data) {
      $('#inputFill').val(data.result);
    });
  });
  </script>

Finalizando el proceso: Controlador Laravel y AJAX

Finalmente, en nuestro controlador, gestionaremos la solicitud AJAX para llenar el input. Para este ejemplo, supondremos que los datos se obtienen de una base de datos y simplemente devolveremos el valor seleccionado por el usuario.

  public function fill(Request $request) {  
    $inputFill = DB::table('table')->select('column')->where('id', $request->selector)->first();  
    return response()->json(['result' => $inputFill->column]);  
  }

Esperamos que este artículo te haya sido útil y ahora puedas modificar inputs dinámicamente basándote en la elección en un select en Laravel sin ningún problema.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad