【问题标题】:HTMLService forms and responsesHTMLService 表单和响应
【发布时间】:2015-03-01 18:58:57
【问题描述】:

Google 脚本的新手。我一辈子都无法获得用于表单工作的 Google 脚本。该文档没有帮助,我找不到任何完整的示例。

在工作表中,我去了脚本部分。我创建了一个基本的“hello world”html。我添加了一个函数 useMyForm,它将调用其中包含表单的脚本。提交后,我无法让表单调用具有 onFormSubmit 的其他脚本。

有人可以给我写一个包含一个条目并调用处理数据的函数的表单吗?也许我的函数不应该在单独的脚本中。

我写 c、php、java ......这个 google 脚本的东西让我很生气。

【问题讨论】:

  • HTML 表单和 Google 表单是两个不同的东西。 HTML 可用于独立应用程序、对话框或侧边栏。它总是让我永远学习最初的“不费吹灰之力”的东西。如果需要,请查看我的个人资料并给我发送电子邮件。
  • 我明白这一点。我只想让我的谷歌表单与我的脚本通信。你认识一个真正知道怎么写的人吗?我在脚本编辑器中创建了一个 html 文件来托管我的表单。
  • 您是创建了自己的 html 表单,还是尝试使用 Google Forms 产品?
  • 我想你在找:google.script.run.yourfunction(variable);
  • 在谷歌表格中,您可以点击工具->脚本。然后您可以选择编写 .gs 文件和 .html……我想为将嵌入 .html 中的表单编写脚本……我需要查看两者的示例代码看看如何设置它。我一直在寻找几个小时,没有完整的示例代码。

标签: google-apps-script


【解决方案1】:

以下是文档中的示例代码,如果您有不明白的地方,请发布您自己的代码版本,但无法正常工作: https://developers.google.com/apps-script/guides/html/communication#forms

代码.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('index')
      .setSandboxMode(HtmlService.SandboxMode.NATIVE);
}

function processForm(formObject) {
  var formBlob = formObject.myFile;
  var driveFile = DriveApp.createFile(formBlob);
  return driveFile.getUrl();
}

index.html

<script>
  function updateUrl(url) {
    var div = document.getElementById('output');
    div.innerHTML = '<a href="' + url + '">Got it!</a>';
  }
</script>
<form id="myForm">
  <input name="myFile" type="file" />
  <input type="button" value="Submit"
      onclick="google.script.run
          .withSuccessHandler(updateUrl)
          .processForm(this.parentNode)" />
</form>
<div id="output"></div>

我花了一段时间才明白的一件事是,当你运行 google.script.run.withSuccessHandler(updateUrl).processForm(this.parentNode)

.processForm(variable) 将运行 .gs 文件中的函数。 该函数的返回(在 .gs 文件中)被发送到 .withSuccessHandler(updateUrl) 函数。在上面的例子中是来自function updateUrl(url)的“url”变量

【讨论】:

  • 非常感谢。我所有的代码都有效......我需要验证两个函数。这是我以前从未遇到过的谷歌脚本“东西”。
  • .html 文件与 .gs 文件对话的唯一方式是通过 google.script.run。或者您可以在模板模式下打开 html(请参阅文档),这将允许您将 .gs 代码插入到 html 代码中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-27
  • 1970-01-01
  • 1970-01-01
  • 2014-01-13
  • 2013-09-30
  • 2019-01-23
  • 1970-01-01
相关资源
最近更新 更多