Por alguna razón, este elemento select2 en mi página siempre está seleccionado. Aquí está la versión más mínima:
$(document).ready(function () { $('#animals').select2({ 'multiple': true, }); $('#business_types').select2({ 'multiple': true, }); }); <div class="mt-2"> {{ \Form::tLabel('', __('Animals'))}} <select name="animals[]" id="animals"> @foreach($animals as $animal) <option @if(in_array($animal->id, request()->animals ?? [])) selected @endif value="{{ $animal->id }}">{{ $animal->name }}</option> @endforeach </select> </div> <div class="mt-2"> {{ \Form::tLabel('', __('Business types'))}} <select name="business_types[]" id="business_types"> @foreach($business_types as $business_type) <option @if(in_array($business_type->id, request()->business_types ?? [])) selected @endif value="{{ $business_type->id }}">{{ $business_type->name }}</option> @endforeach </select> </div>Este PHP produce esto:
<select name="business_types" id="business_types" data-select2-id="select2-data-business_types" multiple="" tabindex="-1" class="select2-hidden-accessible" aria-hidden="true"> <option value="1" data-select2-id="select2-data-5-kfne">Alimentation</option> <option value="2">Animaleries</option> ... </select>No incluí la selección de animales, pero es el mismo problema: se selecciona el primer elemento.
Intenté eliminar el PHP y no ayuda mucho...
¿Alguien tiene una idea sobre cómo solucionar esto?
Solo tuve que establecer el valor "múltiple" en la selección para solucionar este problema.
<select name="business_types[]" id="business_types" multiple="multiple"> @foreach($business_types as $business_type) <option @if(in_array($business_type->id, request()->business_types ?? [])) selected @endif value="{{ $business_type->id }}">{{ $business_type->name }}</option> @endforeach </select>