Страница 1 из 1

DepDrop + ajax подгрузка

Добавлено: 2020.03.24, 09:13
unknownby
Реализовывал ли кто-нибудь зависимость select2 + depdrop, но чтобы в depdrop была подгрузка ajax-ом по частям?
Стандартный DepDrop от kartikа подгружает сразу весь список.

Re: DepDrop + ajax подгрузка

Добавлено: 2020.03.25, 07:00
Ghost_nsk
unknownby писал(а): 2020.03.24, 09:13 Реализовывал ли кто-нибудь зависимость select2 + depdrop, но чтобы в depdrop была подгрузка ajax-ом по частям?
Стандартный DepDrop от kartikа подгружает сразу весь список.
не знаю чем Вы пользуетесь на фронте, опишу на примере jquery. Есть два дропа, второй не активный. Вешаем обработчик on change на первый дроп.

Код: Выделить всё

$(document).on('change', '#drop1', function(){
      // send a request to the server
      $.ajax({
          url: '/ajax/action-url',
          type: 'POST',
          dataType: 'json',
          data: {
              id: $(this).val()
          },
          success: function(data){
              // some logic
          }
      });
});
В экшене фильтруете по id, это может быть либо родитель, либо какая-то другая связка. Возвращаете массив и через параметр data расшариваете его во втором дропе.

Re: DepDrop + ajax подгрузка

Добавлено: 2020.03.25, 09:16
unknownby
Ghost_nsk писал(а): 2020.03.25, 07:00
unknownby писал(а): 2020.03.24, 09:13 Реализовывал ли кто-нибудь зависимость select2 + depdrop, но чтобы в depdrop была подгрузка ajax-ом по частям?
Стандартный DepDrop от kartikа подгружает сразу весь список.
не знаю чем Вы пользуетесь на фронте, опишу на примере jquery. Есть два дропа, второй не активный. Вешаем обработчик on change на первый дроп.

В экшене фильтруете по id, это может быть либо родитель, либо какая-то другая связка. Возвращаете массив и через параметр data расшариваете его во втором дропе.
Сам функционал похож на то, что я использую. DepDrop от kartik-v поддерживает такую же вещь, как зависимость (от того же Select2 тоже kartik-v). Просто при этой зависимости по url приходит весь список сразу, а там от 8к до 10к записей, в принципе нагрузка не сильно большая, но хотелось бы эти записи выводить по 20 и при прокрутке вниз, чтобы срабатывал ajax и подгружал следующие 20 записей. Если готового виджета под это дело нет, то не критично :)