在不使用电子邮件的情况下使用 ID 预填充 Google 表单

Prepopulate a Google Form using ID without using emails

这是我的情况。我有一长串学生名单(每个学生都有一个 ID);每个学生在食物、游戏等方面都有自己的偏好……(所有这些数据都存储在 Google 电子表格中)。向各位同学确认信息无误

我可以通过向每个学生发送一个预填的 link 表格来做到这一点,然后在他们编辑并点击提交后,我将扫描并更新电子表格,然后重新发送向他们发送新的 link,其中包含他们刚刚编辑的预填信息。

但是,我发现它有点 'messy'(?我不确定这是不是正确的词,因为他们必须检查他们的电子邮件,点击 link, 当他们需要再次修改他们的数据时,他们必须找到我发送的最新电子邮件,然后单击新的link)。

我想知道这是否可以通过仅使用 Google 表单(或者可能通过在另一个页面中嵌入 Google 表单来解决?)?我正在考虑创建 2 Google 表单:

  1. 一个表格供学生输入他们的 ID,当他们点击提交时,他们将被带到第二个 Google 表格,其中为他们预先填写了最新信息(从电子表格中获取)。
  2. 第二个表格是填写了他们之前输入的信息的表格。

因为 Google 应用程序脚本 不会 允许我在提交表单时将用户重定向到其他网站(包括其他 Google 表单?) ,所以我正在考虑将 ID Google 表单嵌入到我的 Google 网站上。

这是我非常糟糕的嵌入:

<!-- Normal form embed code, add an ID -->
<iframe id="gform" src="https://docs.google.com/forms/d/e/MyFirstFormURL/viewform?embedded=true" width="640" height="700" frameborder="0" marginheight="0" marginwidth="0" style="margin:0 auto; max-width:100%;">Loading…</iframe>

<script type="text/javascript">
var load = 0;

document.getElementById('gform').onload = function(){
    /*Execute on every reload on iFrame*/
    load++;
    if(load == 2){
        /*Second reload is a submit*/
        document.location = "https://docs.google.com/forms/d/e/MySecondFormURL/viewform?embedded=true";
    }
}
</script>

但是我 运行 遇到了 2 个问题(或者可能是 3 个问题):

  1. 我对iframe使用onload事件来检查表单是否已经提交;这很糟糕,因为即使我点击“清除表格”,它仍然会引导我到第二页。
  2. 我无法读取学生在 iframe 中嵌入的 Google 表单中提供的 ID。 :(
  3. 即使我能以某种方式读取我的 Google 表单中的 ID,我也无法外部 在我的电子表格上执行搜索以获得所需的预filled link(一定是GAS后台完成的吧?)

我有一些编程方面的基础知识(比如一点点 C 和 C++;但是我在 Web 开发方面的经验很少(几乎没有)),我只是列出了我想到的所有内容关于,并致力于此 post。 :(

有人可以推一下吗? :(

非常感谢您,:*

有多种方法可以做到这一点,但这是我会使用的方法。这种方法的主要优点是它不需要任何应用程序脚本编码。

与其直接通过电子邮件将 link 发送给 form,我更愿意将 link 发送给 webpage that is actually a google spreadsheet (example here --欢迎提交测试数据表格)。

确保 link 表单的回复出现在同一个电子表格中,然后使用 indexCounta 函数(见下文)获取相应的最新答案正如我在下面屏幕截图中的 b3c3 单元格中所做的那样。这些最新的答案可以嵌入 link 到单元格 A3 中显示的表格,这确保电子表格将始终有一个 link 到最新提交。

请注意,如果您想为学生提供 link 实际电子表格,那么浏览器的兼容性会稍差一些,但会为更新后的表格提供即时更新 link,而网页会刷新每 5 分钟一次。

祝你好运。