Я сделал нечто подобное с Javascript.
Начните с отключенного HTML-элемента Unit.Как только пользователь выбирает курс, Ajax-запрос выполняется на сервер с выбранным курсом, и действительные единицы возвращаются.По-прежнему используя Javascript, вы добавляете эти модули в соответствующий элемент и только затем включаете его.Если пользователь изменяет курс, выполняется новый запрос на обновление элемента Unit соответствующими модулями.
Чтобы ускорить процесс, вы можете предоставить все модули клиенту, а также динамически загрузить их с помощью Javascript, как толькоКурс выбран.Этот подход сокращает время ожидания, но увеличивает размер передаваемого файла (если они не сотни, это, вероятно, лучше).