Невозможно установить значения select2 - PullRequest
0 голосов
/ 16 ноября 2018

Я использую Select2 v4, и у меня инициализирован объект:

posts.blade.php

<select class="form-control" name="categories[]" multiple="multiple" id="cat_select">
  @foreach ($categories as $c)
   <option value="{{$c->id}}">{{$c->title}}</option>
  @endforeach
</select>

Я уже инициализировал его значениями по умолчаниюкоторый может быть выбран пользователем вручную.У меня есть функция ajax, которая возвращает категории, уже инициализированные в select.Я хочу, чтобы возвращаемые данные были установлены в select, но они не работают.Так, например, у селектора уже есть опция «спорт», а из ajax он возвращает «спорт».Я хочу, чтобы "спорт" был выбран.

javascript

let select_cat = $("select#cat_select").select2();

Что я пробовал

$("#cat_select").val([data.title]).trigger("change"); //which doesn't work for some reason

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Прежде всего вам необходимо вернуть выбранные значения в блейд-файл с контроллера.

Пусть выбранные значения будут в $selected.Верните его как

return view('posts', compact('selected'));

Затем в свой блейд-файл вы должны добавить следующий скрипт

 $(document).ready(function() {
      var selected = <?php echo json_encode($selected) ?>;
      $('#cat_select').select2();
      $('#cat_select').val(selected);
      $('#cat_select').trigger('change');
    });

Это решение работает для меня, и я использовал его везде, где мне нужно, выберите select2 selectedзначения.

0 голосов
/ 16 ноября 2018

Это было мое решение. Мне пришлось уничтожить select2, затем добавить значения (массив) в выборку и заново инициализировать его.

  data.categories.map(function(el){
    my_categories.push(el.id);
   });
  $("#cat_select").select2('destroy');
  $("#cat_select").val(my_categories);
  $("#cat_select").select2();
...