Для создания многоуровневого мультиселекта, где у каждой опции есть связанные подопции, можно использовать динамическое обновление списка с помощью JavaScript.
Пример реализации:
HTML
<select id="tooth-select" multiple>
<option value="1">Зуб1</option>
<option value="2">Зуб2</option>
<option value="3">Зуб3</option>
<option value="4">Зуб4</option>
</select>
<select id="diagnosis-select" multiple></select>
JavaScript
const diagnostics = {
1: ["Кариес", "Пульпит"],
2: ["Гиперестезия", "Флюороз"],
3: ["Периодонтит"],
4: ["Травма", "Киста"]
};
document.getElementById("tooth-select").addEventListener("change", function () {
const selectedTooth = this.value;
const diagnosisSelect = document.getElementById("diagnosis-select");
diagnosisSelect.innerHTML = ""; // Очистка старых данных
(diagnostics[selectedTooth] || []).forEach(diagnosis => {
const option = document.createElement("option");
option.value = diagnosis;
option.textContent = diagnosis;
diagnosisSelect.appendChild(option);
});
});
Как это работает:
- В первом списке выбираются зубы.
- Во втором списке автоматически обновляются диагнозы, связанные с выбранными зубами.