У меня есть два выпадающих списка, один зависит от другого. Когда пользователь выбирает параметр из первого списка, второй раскрывающийся список заполняет его параметры элементов из массива Google SpreadSheet (на основе свойств фильтра и карты).
Вопрос заключается в следующем: как передать значение элемента из файл сценария Html для файла сценариев приложений Google code.gs , чтобы я мог отфильтровать второй раскрывающийся список в зависимости от выбора, выбранного пользователем из первого списка?
ReceivePayment- js. html file:
<script>
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('select');
var instances = M.FormSelect.init(elems);
});
document.getElementById("btn").addEventListener("click",populateData);
document.getElementById("reference").addEventListener("onchange",dropDown);
//Trying to pass this directly below variable that contains the value of Reference dropdown-list
//(onchange event listener) to code.gs file inside doGet function
//where my lists coded to be created dynamically and evaluated.
function dropDown(){
var selectedRef = document.getElementById("reference").value;
}
</script>
Code.gs file:
function doGet(e){
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Account lists");
var receivePaymentTemp = HtmlService.createTemplateFromFile("Consol");
receivePaymentTemp.title = "Receive Payment";
var bankAcountsList = ws.getRange(2,6,ws.getRange("F2").getDataRegion().getLastRow()-1,1).getValues();
var htmlBankAcountList = bankAcountsList.map(function(r){ return '<option>' + r[0] + '</option>'; }).join('');
receivePaymentTemp.bankAcountsList = htmlBankAcountList
var receivePaymentRef = ws.getRange(2,8,ws.getRange("H2").getDataRegion().getLastRow()-1,1).getValues();
var htmlreceivePaymentRef = receivePaymentRef.map(function(r){ return '<option>' + r[0] + '</option>'; }).join('');
receivePaymentTemp.receivePaymentRef = htmlreceivePaymentRef
var chartOfAccounts = ws.getRange(2, 1,ws.getRange("A1").getDataRegion().getLastRow()-1,2).getValues();
//Here where I need to get the value of document.getElementById("reference").value from the other side
//(ReceivePayment-js.html) and put it inside referenceBox variable as I obviously didn't succeed
var referenceBox = ""
var filteredReference = chartOfAccounts.filter(function(item){ return item[0] === referenceBox; });
var htmlfilteredCustomer = filteredReference.map(function(acN){ return '<option>' + acN[1] + '</option>'; });
receivePaymentTemp.chartOfAccounts = htmlfilteredCustomer
return receivePaymentTemp.evaluate();
}
Consol. html file:
<div class="row">
<div class="input-field col s6">
<select id="creditAccount">
<option disabled selected>Customer</option>
<?!= chartOfAccounts; ?>
</select>
</div>
</div>
</div>
</form>
</div>
До сих пор я пытался поместить
document.getElementById("reference").value;
в файл Code.gs, но он вернул ошибку.
Поскольку я новичок в кодировании, я заблудился и не могу понять, как это должно быть сделано правильно. Заранее спасибо.