Я работаю над веб-приложением Google. Я хочу получить данные на основе выпадающего списка. Я могу получить данные отлично только при первом выборе элемента из выпадающего списка, а в остальном я получаю пустой массив. Я проверил код на стороне сервера, вручную позвонив и он работает нормально, и отправил данные обратно безупречно. Проблема в коде на стороне клиента, но я понятия не имею об этом поведении. Буду признателен, если кто-нибудь поможет. Заранее спасибо.
Вот ссылка на лист https://docs.google.com/spreadsheets/d/1yrQjp0_lU3iONW0FK3yCwm79CzD9KUW3Yg92Al5yoAo/edit?usp=sharing
Ссылка на веб-приложение https://script.google.com/macros/s/AKfycbyJdifqDE4NG3dhIsQDQT3f9xKYYfPBL4QXz3p6SZzz3_avdf3b/exec?v=updateevent
Вот раскрывающийся список
Выбор первого элемента индекса и полученного массива в предупреждающем сообщении
Выбор второго элемента и полученного нулевого массива
Когда я передаю текст вручную к функции сервера ниже для второго и третьего элемента я получаю соответствующие строки и получаю ответ в массиве, но используя клиентскую часть, я получаю нулевой массив в ответ.
Вот мой код на стороне сервера
function GetSelection(title){
var ss = SpreadsheetApp.openById("Sheet_ID");
var sheet = ss.getSheetByName("Event_Info");
var Avals = sheet.getRange("A1:A").getValues();
var Alast = Avals.filter(String).length;
var list = sheet.getRange("A2:T" + Number(Alast)).getValues();
Logger.log(list);
var values = [];
values.pop();
for (var i=0; i < list.length; i++){
if( list[i][0].toString().trim().toLowerCase() === title.toString().trim().toLowerCase()){
values.push([list[i][0], list[i][1], list[i][2], list[i][3], list[i][4]]);
return values;
}
}
}
Вот мой код на стороне клиента
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<?!= include("CREATEEVENT-CS") ?>
</head>
<body onload="addList()">
<div class="row">
<div class="col-25">
<label> Event Type </label>
</div>
<div class="col-75">
<select id="selectNumber" onchange="jsFunction(this.value)">
<option>Choose a number</option>
</select>
</div>
</div>
<?!= include("UPDATEEVENT-JS") ?>
</body>
</html>
Вот скрипт получения данных
function jsFunction(value)
{
alert(value);
google.script.run.withSuccessHandler(getpopuled).GetSelection(value);
}
function getpopuled(dataarray){
alert(dataarray);
}