【问题标题】:Form Submissions to multiple Spreadsheets using 'onsubmit'使用“onsubmit”将表单提交到多个电子表格
【发布时间】:2019-12-18 18:19:24
【问题描述】:

我有一个 Gform,我需要根据第一个问题中的多项选择答案将提交内容转到 3 个电子表格中的一个。如下所示。

这是针对哪个项目的?

  1. 项目A
  2. 项目 B
  3. 项目 C

我只能使用 1 个初始形式。我需要提交到完全不同的电子表格,而不仅仅是一个电子表格中的不同选项卡。而且,我不能使用导入范围功能,因为它不允许在原始提交期间出现错误的情况下覆盖数据,而无需使用其他项目提交和数据进入表单响应页面。

我目前的两个想法是,

  1. 使用“onsubmit”脚本根据他们对第一个问题的回答来路由提交,但我找不到任何其他示例来说明如何执行此操作或有人在哪里做过类似的事情。我发现最接近的是使用 onsubmit 之后发送特定的电子邮件,但实际上没有更改提交的目的地。
  2. 使用脚本构建表单,在他们回答第一个问题(项目 A、B、C)后,它将重定向到另一个部分或单独的表单,提交将被发送到每个项目的电子表格。对于这个想法,我无法弄清楚如何让不同的表单部分提交到单独的电子表格,或者如何让用户根据他们对第一个问题的回答被重定向到另一个表单。

任何帮助或建议将不胜感激。谢谢,

【问题讨论】:

  • 第三种可能是不使用 Google 表单。而是建立自己的。

标签: google-apps-script form-submit google-forms


【解决方案1】:

使用第一个替代方案:

function onFormSubmit(e) {
  var ssObj={'ProjectA':'ssid','ProjectB':'ssid','ProjectC':'ssid'};
  var ss=SpreadsheetApp.openById(ssObj[e.values[1]]);//assuming question one is the answer for which project the response is supposed to go to
  var sh=ss.getSheets()[0];
  sh.appendRow(e.values)';
}

好的,我知道你需要一些解释。

  1. 首先您必须设置一个 onFormSubit() 触发器。你可以从Edit/Current Project Triggers menu 做到这一点。当提交表单触发此函数时,e.values 将是该表单中所有答案的数组。

你也可以用代码做到这一点:

function createOnFormSubmitTrigger() {
  var ss=SpreadsheetApp.getActive();
  ScriptApp.newTrigger('onFormSubmit').forSpreadsheet(ss.getId()).onFormSubmit().create();
}
  1. ssObbj 是一个 javascript 对象,它是您根据问题答案中的信息创建的。 var ssObj={'The answer for for project A':'the spreadsheet id for project A','the answer for project B':'the spreadsheet id for project b','the answer for project C':'the spreadsheet id for answer C'};

一些参考资料。

onFormSubmit Object for spreadsheet

onFormSubmit Object for form

SpreadsheetApp.openById()

Sheet.appendRow()

【讨论】:

  • 谢谢,这绝对有帮助,我对此有所了解,但如果您有时间,我有 2 个快速问题。 ss0bj 是从哪里来的?其次是 [e.values[1]]);我收到“无法正确读取”值“”错误代码。这是我需要定义的东西吗?
  • 我想我可以通过添加和链接提交触发器来解决我刚刚询问的问题。但是我现在得到一个“在对象 SpreadsheetApp 中找不到函数 openByID”?有什么建议么?我是否需要喜欢或允许访问我将用于输出的其他三个电子表格?
  • 您可以了解 JavaScript 对象 here 并且您无法从脚本编辑器中运行这样的函数。必须提供onFormSubmit Event Object。阅读时要小心,因为表单的事件对象与链接电子表格的事件对象不同。
猜你喜欢
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
  • 2011-12-05
  • 2021-08-19
  • 2018-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多