获取表单提交上的提交数量

时间:2016-10-23 16:08:37

标签: javascript google-apps-script google-apps google-form

我正在开发一个与Google表单捆绑在一起的Google Apps脚本。 当用户提交回复时,我需要发送一封包含提交数量的电子邮件(即该用户是提交表单的第n个人)。

我没有在API中找到可以执行相同操作的方法。我提出了2个解决方法,但它们不起作用:

1。按响应ID检查

我尝试通过所有表单回复并检查此响应的ID是否匹配,然后记录索引。

function onFormSubmit(e)
{
  var formResponses = e.source.getResponses();

  for(var i = 0; i < formResponses.length; i++)
  {
    if(e.response.getId() == formResponses[i].getId())
    {
      Logger.log("Find it! Your number of submission is " + (i + 1));
      break;
    }
  }
  Logger.log("Cannot find response in form!");
}

但是,我很惊讶地发现formResponses不包括用户刚提交的响应(因为我总是得到Cannot find response in form!消息)。我猜Google在执行此功能后会将此响应插入到表单中。

2。检查表单回复总数

然后我提出了另一个想法。知道用户刚提交的响应不包含在表单中,为什么不只计算表单内的响应数量并添加1?

function onFormSubmit(e)
{
  var formResponses = e.source.getResponses();
  Logger.log("Your number of submission is" + (formResponses.length + 1));
}

问题是,如果超过1个用户同时提交表单,他们可能会得到错误的号码。我想原因是用户可能会得到未更新的号码,因为另一个用户已经提交了尚未插入表单的响应。

我想知道是否有正确的方法来做到这一点。非常感谢你。

0 个答案:

没有答案