一种通过Google工作表中的列动态更新选项列表的解决方案

马哈茂德·巴米

格式如下:https : //script.google.com/macros/s/AKfycbwTGqZqLTAsOpSweMn0xgHP0sOJPsFg5ZShC1HqzVoDoNi5h5Y/exec

我正在尝试从此工作表的列中动态更新选项列表:https : //docs.google.com/spreadsheets/d/1_LSdBkvw5Z6L4ZQP5qZccLEfekNVRCeKQRLLb9Vm4eM/edit#gid=285745421

我在这里使用“ Ziganotschka”提供的解决方案:如何根据所附电子表格中的列自动填充表单选项

该代码没有给出任何错误,但由于某种原因,它仍然以表格形式提供了一个空的选项列表

提前致谢

代码

function createInnerHTML()
{
var ss = SpreadsheetApp.getActive();
var names = ss.getSheetByName("CHOICES");
var namesValues = names.getRange(2, 2, names.getMaxRows() - 
1).getValues(); 
var InnerHTML = [];
for (var i=0;i<namesValues.length;i++){
  InnerHTML.push('<option value="OPTION '+(i+1)+'>' + namesValues[i][0]+ '</option>'); 
}; 
InnerHTML.join('');
return InnerHTML;
}

index.html

<div class="ss-q-title">JOINT
<span class="ss-required-asterisk" aria-hidden="true">*</span></div>

<? var innerHTML= createInnerHTML(); ?>  
<div>
<select name="JOINT" id="JOINT" aria-label="JOINT  " aria-required="true" required="">
<option value=""></option>
//HERE the inner HTML will be inserted
<?= innerHTML?>
</select>
</div>
奥列格·瓦尔特(Oleg Valter)

问题

通过打印脚本片段,您只需将带有选项的HtmlStrings添加为文本内容(如果您在控制台中检查元素,您将看到所有选项都存在)。UPD:顺便说一句,TheMaster的解决方案更易于实施。

许多可能的解决方案之一是将选项对象数组返回模板并遍历每个对象,从而动态地形成标签:

服务器端

function createInnerHTML() {
  var ss = SpreadsheetApp.getActive();
  var names = ss.getSheetByName("CHOICES");
  var namesValues = names.getRange(2,2,names.getMaxRows()-1).getValues(); 
  var innerHTML = [];
  for (var i=0;i<namesValues.length;i++){
    innerHTML.push({value:'OPTION '+(i+1), text:namesValues[i][0]}); 
  };
  return innerHTML;
}

客户端

请注意,<div>为清楚起见,此示例省略了元素和任何其他包装。

<? var innerHTML= createInnerHTML(); ?>  
<select name="JOINT" id="JOINT" aria-label="JOINT" aria-required="true" required="">
<option value=""></option>
<? innerHTML.forEach(function(option) { ?>
  <option value="<?= option.value ?>"><?= option.text ?></option>
<? }); ?>
</select>

其他修改

我建议从切换到getMaxRows()getLastRow()因为脚本返回296个选项,其中大多数为空白,并且仅由于行为空而设置了值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

寻找一种解决方案,在数据框中的一列中添加以列表格式存储的数字和浮点元素

是否有一种更优雅的解决方案来填充地图中的列表?

寻求一种成本更低的解决方案来匹配两个表的ID

如何在Visual Studio 2013中将Web参考从一种解决方案复制到另一种解决方案

相同的自动完成功能在一种解决方案中有效,但在另一种解决方案中无效

glDisableVertexAttribArray在一种Visual Studio解决方案中有效,但在另一种解决方案中无效

TypeScript闭包-一种“几乎”解决方案

在Haskell寻找骑士之旅的一种解决方案

仅显示一种解决方案,“停用”另一种解决方案

无法将DTO从一种解决方案转换为另一种解决方案?

Meteor.Methods中的一种功能,可能的体系结构解决方案

删除目录(而不是目录)中的所有文件-一种班轮解决方案

仅获得一种用于家庭树中同级对的解决方案

一种计算熊猫中连续事件的解决方案

嗨,我正在寻找一种在Pygame中具有多个按钮的解决方案

使用外部装配体中的样式,这是另一种解决方案

这两种解决方案中哪一种效率更高?(Java哈希集)

找到所有解决方案后,如何对解决方案进行评分并选择一种

在一种解决方案中,如何在源项目之间共享许多二进制文件?

一种解决方案中从WPF客户端到服务器的调用期间发生超时异常

有没有一种方法可以自动解决方案中特定项目的构建顺序?

需要一种解决方案来从数组中获取数据,然后将其推入状态以用于每个

寻求解决方案来更新同一目录中的多个Excel工作簿?

.htaccess试图隐藏子目录-一种解决方案可行,另一种解决方案可行,为什么?

两种脚本有冲突-一种在工作中排名第二-寻找解决方案

为什么针对寻路机器人的这些动态编程解决方案之一比另一种更快?

一种使用Java Robot API和Java Selenium WebDriver的文件上传解决方案

用于编辑计数的numpy数组的一种解决方案?(蟒蛇)

为什么以下Prolog程序仅返回一种解决方案?