Решил отображать на YII2 список вида "дерево" с помощью виджета yii\bootstrap\Collapse, так как он сам сворачивает неактивные ветви. Данные подгружаются из базы, ветвление может оказаться достаточно сильным, а главное, пользователь в большинстве случаев их просматривать вообще не станет, поэтому хочу сделать динамическую подгрузку данных для минимизации нагрузки на сервер.
JS и AJAX я почти не знаю, YII2 уже частично изучил, и, мне кажется, как-то можно сделать всё его средствами. Только в документации показано, как динамически заменять данные в видах (PJAX), а мне надо влиять на содержимое виджета, соответственно, и разметка html будет меняться :)
То есть, первоначально пользователю рендерится такая структура:
Collapse::widget([
'items' => [
[
'label' => 'Список 1',
'content' => [],
],
[
'label' => 'Список 2',
'content' => [],
],
]
]);
Если нажать на какой-то список, то вместо пустого массива должен подгрузиться массив с настоящими данными (включая вложенные виджеты Collapse, которые тоже можно раскрывать без ограничений на глубину вложенности).
Вроде бы задача стандартная, но не пойму, как заменять пустой массив на содержащий что-то, при этом не затрагивая уже сгенерированные части вида?