【发布时间】:2019-07-09 14:07:10
【问题描述】:
我在 google 工作表中有一个列表,可以选择为 html 中的选项。选择设置为多个。如何将选定的值放置在谷歌工作表的单个单元格中?
这里是谷歌表格的链接:
https://docs.google.com/spreadsheets/d/1lEfzjG1zzJVPMN8r-OpeZm6q9_IqSwk9DNCEY-q7ozY/edit?usp=sharing
这是我的多个html代码:
<div class="input-field col s4">
<select id="posApp" multiple="multiple">
<option value="" disabled>Choose your preferred app</option>
<?!= list2; ?>
</select>
<label>Select App</label>
</div> <!-- CLOSE TIME FIELD -->
</div> <!-- CLOSE ROW -->
对于谷歌脚本(从谷歌表中制作选择列表):
function doGet(e){
var ss = SpreadsheetApp.openByUrl(url);
var ws2 = ss.getSheetByName("Pos_App");
var list2 = ws2.getRange(1,1,ws2.getRange("A1").getDataRegion().getLastRow(),1).getValues();
var htmlListArray2 = list2.map(function(r){return '<option>' + r[0] + '</option>'; }).join('');
var tmp = HtmlService.createTemplateFromFile("page");
tmp.list2 = htmlListArray2;
return tmp.evaluate();
}
对于 JavaScript,使用 Materialize CSS 中的 Select 初始化和 @Cooper 中的代码:
<script>
document.addEventListener('DOMContentLoaded', function() {
var timeSelect = document.querySelectorAll('select');
M.FormSelect.init(timeSelect);
document.getElementById("posApp").addEventListener("change",selectMulti);
function selectMulti(){
google.script.run.withSuccessHandler(updateSelect).getSelectOptions();
}
function updateSelect(vA){
var select = document.getElementById("posapp");
for(var i=0;i<vA.length;i++)
{
select.options[i] = new Option(vA[i],vA[i]);
}
}
});
</script>
然后谷歌脚本中的附加功能也来自@Cooper:
function getSelectOptions()
{
var ss = SpreadsheetApp.openByUrl(url);
var ws = ss.getSheetByName("Open_Pos");
var posRg = ws.getRange(1, 1, ws.getLastRow(), 1).getValues().join().split(",");
//return rg.getValue().split(',');
return posRg;
}
但不幸的是,它仍然不成功。虽然 HTML 中的输出是所有选定的数据,但当我单击提交按钮时,只有选择中的第一项保存在 google 工作表中。我也不知道如何使用 MaterializeCSS 中的.getSelectedValues();。提前感谢您的帮助。
【问题讨论】:
-
您能否分享您的代码以了解您的尝试?否则很难告诉你如何帮助你。
-
对不起,我是新来的,所以我不能像其他帖子一样正确发布代码。
-
没关系,你可以编辑你的问题,粘贴代码,选择它然后点击编辑器中的{}按钮,它会为你提供正确的格式
标签: javascript html google-apps-script materialize