【问题标题】:Prepopulate a Google Form using ID without using emails在不使用电子邮件的情况下使用 ID 预填充 Google 表单
【发布时间】:2021-11-08 05:26:15
【问题描述】:

这是我的情况。我有一长串学生(每个学生都有一个 ID);每个学生对食物和游戏都有自己的偏好……(所有这些数据都存储在 Google 电子表格中)。我想向所有学生确认信息都是正确的。

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

但是,我发现它有点“混乱”(?我不确定这是否是正确的词,因为他们必须检查他们的电子邮件,点击链接,以及何时需要修改他们的数据再次,他们必须找到我发送的最新电子邮件,然后单击新链接。

我想知道这是否可以仅通过使用 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,我也无法在外部在我的电子表格上执行搜索以获取所需的预填链接(必须由 GAS 完成后端,对吧?)

我有一些编程方面的基本知识(比如一点点 C 和 C++;但在 Web 开发方面我几乎没有(几乎没有)经验),我只是列出了我想到的所有内容,并在这篇文章中工作。 :(

有人可以推我一下吗? :(

非常感谢您,:*

【问题讨论】:

    标签: javascript google-apps-script google-sheets google-forms


    【解决方案1】:

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

    我不会通过电子邮件发送指向form 的直接链接,而是向学生发送指向webpage 的链接,这实际上是google spreadsheetexample here -- 随意在表格上提交测试数据) .

    确保链接表单的回复以显示在同一个电子表格中,然后使用 indexCounta 函数(见下文)来获取各自的最新答案,就像我在单元格 b3 和 @ 中所做的那样987654330@ 在下面的屏幕截图中。这些最新的答案可以嵌入到单元格A3 中显示的表单的链接中,从而确保电子表格始终具有指向最新提交的链接。

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

    祝你好运。

    【讨论】:

    • 非常感谢,我确实把它弄乱了一点,它确实给了我一些解决问题的想法。非常感谢,:*
    • 很高兴它成功了。感谢接受。在 StackOverflow 上没有接吻。 :)
    猜你喜欢
    • 2012-11-22
    • 1970-01-01
    • 2016-03-21
    • 2021-07-21
    • 2023-03-09
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多