При разработке веб-приложений динамические раскрывающиеся списки играют решающую роль в улучшении пользовательского опыта и обеспечении упрощенного интерфейса. Одним из распространенных сценариев является создание зависимых раскрывающихся списков, в которых параметры в одном списке зависят от выбора, сделанного в другом списке. В этой статье мы рассмотрим различные методы достижения этой функциональности с помощью скрипта Google Apps (GAS). GAS – это облачный язык сценариев, разработанный Google, который позволяет автоматизировать задачи и расширять функциональность приложений Google Workspace.
Метод 1: использование HTML и JavaScript
Создание зависимых раскрывающихся списков с использованием HTML и JavaScript — простой подход. Вот пример фрагмента кода:
<!DOCTYPE html>
<html>
<head>
<script>
function populateCities() {
var state = document.getElementById("state").value;
var cities = document.getElementById("city");
// Clear existing options
cities.innerHTML = "";
// Populate cities based on selected state
if (state === "California") {
var californiaCities = ["Los Angeles", "San Francisco", "San Diego"];
for (var i = 0; i < californiaCities.length; i++) {
var option = document.createElement("option");
option.text = californiaCities[i];
cities.add(option);
}
} else if (state === "New York") {
var newYorkCities = ["New York City", "Albany", "Buffalo"];
for (var j = 0; j < newYorkCities.length; j++) {
var option = document.createElement("option");
option.text = newYorkCities[j];
cities.add(option);
}
}
}
</script>
</head>
<body>
<select id="state" onchange="populateCities()">
<option value="">Select a state</option>
<option value="California">California</option>
<option value="New York">New York</option>
</select>
<select id="city"></select>
</body>
</html>
В этом примере выбор состояния из первого раскрывающегося списка запускает функцию populateCities()
, которая динамически заполняет второй раскрывающийся список (id="city"
) на основе выбранное состояние.
Метод 2. Использование Google Таблиц в качестве источника данных.
Другой подход — использовать Google Таблицы в качестве источника данных для раскрывающихся списков. Вот пример фрагмента кода, демонстрирующий этот метод:
function populateCities() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
var state = sheet.getRange("A1").getValue();
var cities = sheet.getRange("B1:B").getValues();
// Clear existing options
var cityDropdown = sheet.getRange("C1:C");
cityDropdown.clearContent();
// Populate cities based on selected state
for (var i = 0; i < cities.length; i++) {
if (cities[i][0] === state) {
cityDropdown.offset(i, 0, 1, 1).setValue(cities[i][1]);
}
}
}
В этом примере данные раскрывающихся списков хранятся в таблице Google под названием «Данные». Выбранный штат извлекается из ячейки A1, а соответствующие города заполняются в столбце C на основе выбранного штата.
Создание зависимых динамических раскрывающихся списков в веб-приложениях с помощью GAS обеспечивает гибкость и улучшает взаимодействие с пользователем. В этой статье мы рассмотрели два метода: использование HTML и JavaScript непосредственно на веб-странице и использование Google Таблиц в качестве источника данных. В зависимости от ваших конкретных требований и предпочитаемого источника данных вы можете выбрать метод, который лучше всего соответствует вашим потребностям.