[英]Using select multiple to send multiple values to google sheets using google apps script
我正在嘗試使用多個選擇器使用谷歌應用程序腳本將數據發布到谷歌表,如下所示:
代碼.gs:
function doGet() {
return HtmlService.createTemplateFromFile('Form.html').evaluate()
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
function doPost (e) {
var lock = LockService.getScriptLock();
lock.tryLock(10 * 1000);
try {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheet = doc.getSheetByName("Sheet1");
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0]
var nextRow = sheet.getLastRow() + 1
var newRow = headers.map(function(header) {
return header === 'Timestamp' ? new Date() : e.parameter[header]
})
sheet.getRange(nextRow, 1, 1, newRow.length).setValues([newRow])
return HtmlService.createTemplateFromFile('Confirmation.html').evaluate()
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
catch (e) {
return ContentService
.createTextOutput(JSON.stringify({ 'result': 'error', 'error': e }))
.setMimeType(ContentService.MimeType.JSON)
}
finally { lock.releaseLock() }
}
表格.html:
<!DOCTYPE html>
<html lang="en">
<body>
<form name="myForm" action="https://script.google.com/macros/s/AKfycbwamMCkOCAmwrRDNj8cTqgp3cevm8B9niyrlYa5dnbxP2H3q0o/exec" target="_self" method="POST">
<div>
<select name="M Values" multiple required>
<option value="" disabled selected>Select Value(s)</option>
<option value="M1">M1</option>
<option value="M2">M2</option>
<option value="M3">M3</option>
<option value="M4">M4</option>
<option value="M5">M5</option>
<option value="M6">M6</option>
</select>
</div>
<button type="submit">Send</button>
</form>
</body>
</html>
問題是當用戶選擇多個選項,例如 M1、M3 和 M5 並單擊提交按鈕時,我只在工作表中收到 M1,而不是像 M1、M3、M5 那樣收到所有選定的值
表: https : //docs.google.com/spreadsheets/d/1FdOH2zU_ZnxB2a7RA_QfO3HdPTRhVhSHo5988a8Au9s/edit?usp=sharing
該表是可編輯的,所以請隨意使用。 請任何幫助非常感謝。 提前致謝
我相信你的目標如下。
我認為您的新問題的原因是e.parameter[header]
。 在這種情況下, e.parameter
只是所選值中的一個值。 所以請修改如下。
return header === 'Timestamp' ? new Date() : e.parameter[header]
return header === 'Timestamp' ? new Date() : e.parameters[header].join(",");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.