【问题标题】:How can we add fields from google Apps into google forms?我们如何将谷歌应用中的字段添加到谷歌表单中?
【发布时间】:2015-10-27 18:46:11
【问题描述】:

我正在寻找一种方法来使用来自谷歌应用程序的特定数据“预先填写”谷歌表单。如您所知,当用户登录表单时,它会检索其用户名,那么我如何将其他已知字段(电子邮件、电话、部门)放入谷歌表单?

【问题讨论】:

  • 您不能预先填写已加载的表格。您可以预先填写表单,然后打开预先填写的表单,但您无法在表单加载后动态更改输入值。所以,我不认为你要求的不是“预填充”。在获取用户电子邮件和使用正确信息打开表单之间需要再进行一步。因此,这将是一个多步骤的过程。那是你唯一的选择。例如,使用 Apps Script 构建一个预填充的 URL,将预填充的 URL 通过电子邮件发送给用户,然后用户单击电子邮件中的链接打开预填充的
  • @SandyGood 谢谢桑迪,我只需要显示这些字段(用户不会更改它们)
  • @SandyGood 可靠的答案!我之前遇到过同样的问题,并从头开始构建了一个表单。它有点长,但它会给你更多的灵活性
  • 我愿意学习并且会耐心申请@niwox..但是你能告诉我怎么做吗??
  • 在 ui 部分:一个带有所需字段的简单表单在服务器端:用于检索所需信息并使用函数或使用模板化 html 返回它们的函数。如果它没有意义,我可以试着给你一个简单的例子。你熟悉 AngularJs 基础知识吗?

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


【解决方案1】:

如果您想构建自己的表单
Code.gs

function doGet() {
  return HtmlService.createTemplateFromFile('index').evaluate()
      .setTitle('MyTitle')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

function getEmail(){
  return Session.getActiveUser().getEmail();
}

function test(){
  Logger.log(Session.getActiveUser().getEmail());
}

index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <form>
      email: <br>
      <input name="firstname" id="email">
      <br>
      name:<br>
      <input type="text" name="lastname"><br>
      <button> send </button>
</form>

<script>
google.script.run.withSuccessHandler(onSuccess).getEmail();

function onSuccess(email){
  var elem = document.getElementById("email");
  elem.value = email;
}

</script>
  </body>
</html>

【讨论】:

  • 谢谢@niwox..我在脚本编辑器和测试中都试过了:找不到脚本函数:doGet 如何部署它?
  • 确保从脚本中运行函数 getEmail 以对其进行授权
猜你喜欢
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-23
相关资源
最近更新 更多