创建多个数组列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建多个数组列表相关的知识,希望对你有一定的参考价值。

重新措词的目标:我正在使用Google Apps脚本创建网页。我想在页面上列出多个下拉列表。我知道如果使用<select><option>,则可以创建一个硬编码选项列表。我想做的是从Google工作表中获取要显示在下拉菜单中的选项,这样我可以随时更新它而无需修改html代码。

问题:我成功地从工作表中创建了一个包含列A值的下拉选择时,遇到了一个问题,即Apps Script无法让我创建另一个包含Column值的下拉列表B。

这是我的工作表,其中包含姓名和饮食类型。每列包含每个下拉菜单的选项。

enter image description here

这是前端的外观。我想在它旁边的另一个下拉列表中包含来自B列的值(如上所示)。

enter image description here

这是我的剧本:

var url = "google sheets URL";

function doGet(e)

  var ss = SpreadsheetApp.openByUrl(url);
  var ws = ss.getSheetByName("Staff");
  var list = ws.getRange(1,1,ws.getRange("A1").getDataRegion().getLastRow(),1).getValues();

  var tmp = HtmlService.createTemplateFromFile("index");
  tmp.list = list.map(function(r) return r[0]; );
  return tmp.evaluate();


这是我的选择列表的HTML:

  <select id="app" class="browser-default">
  <option disabled selected>Select a teammate!</option>
  <? for(var i=0;i<list.length;i++) ?>
  <option><?= list[i]; ?></option>
  <?  ?>
  </select>

此刻它可以正常工作,但是当尝试复制它时,我可以在Google表格中获取另一列,并将其用作另一个选择列表,我得到:Referenceerror:未定义“列表”。

这是导致我得到错误的脚本。

var url = "google sheets URL";

function doGet(e)

  var ss = SpreadsheetApp.openByUrl(url);
  var ws = ss.getSheetByName("Staff");
  var list = ws.getRange(1,1,ws.getRange("A1").getDataRegion().getLastRow(),1).getValues();

  var tmp = HtmlService.createTemplateFromFile("index");
  tmp.list = list.map(function(r) return r[0]; );
  return tmp.evaluate();



function doGet(f)

  var ss = SpreadsheetApp.openByUrl(url);
  var ws = ss.getSheetByName("Variables");
  var list2 = ws.getRange(1,1,ws.getRange("A1").getDataRegion().getLastRow(),1).getValues();

  var tmp2 = HtmlService.createTemplateFromFile("index");
  tmp2.list2 = list2.map(function(r) return r[0]; );
  return tmp2.evaluate();


答案

这是从对话框获取多个列表的简单示例。

以上是关于创建多个数组列表的主要内容,如果未能解决你的问题,请参考以下文章

为音乐播放列表创建一个包含多个选项的数组

在循环中创建多个具有不同名称的对象以存储在数组列表中

Python学习第80天(js的数组对象函数对象)

如何创建多个从同一个数组中获取值的动态下拉列表,而无需更改 Javascript 中的其他下拉列表

element 列表其中一个字段为数组如何取出数据

动态创建多个数组