将网络表单值返回至 Google 应用脚本

2024-04-20

我有一个谷歌表格脚本,允许用户输入某些数据。当用户单击“确定”时,我希望能够将这些值传递回谷歌应用程序脚本中的函数。

这是我试图开始工作的 Google 表格脚本。函数 checkLogin 确实会被调用,直到我尝试从网页将值传递给它。

剧本

function onOpen() {
   openLogin();
   SpreadsheetApp.getUi()
      .createMenu('Dialog')
      .addItem('Open', 'openLogin')
      .addToUi()
}

function openLogin() {
    var html = HtmlService.createHtmlOutputFromFile('index');
    SpreadsheetApp.getUi() 
      .showModalDialog(html, 'Login Form');
}

function checkLogin(user_name, user_password, staff, student) {
    SpreadsheetApp.getUi().alert(user_name); 
}

网页代码如下:

<!DOCTYPE html>
<html>
<head>
   <base target="_top">
</head>
<body>
  <form>    
    First name:&nbsp;&nbsp;
    <input type="text" name="user_name"><br><br>
    Last name:&nbsp;&nbsp;
    <input type="password" name="user_password"><br><br>
    Staff or Student?
    <br>

    <input type="radio" name="staff" value="staff" checked> Staff<br>
    <input type="radio" name="student" value="student"> Student<br>
    <br><br>

    <input type="button" value="OK"
    onclick="google.script.run.checkLogin(user_name, user_password, staff, student)" />

    <input type="button" value="Close"
    onclick="google.script.host.close()" />

  </form>

 </body>
</html>

我希望有人能指出我正确的方向。谢谢


提交登录信息的按钮需要更改。需要有一种方法来收集输入信息。目前,表单中的任何信息都没有发送到服务器。要么需要将表单对象发送到服务器,要么需要以其他方式检索值。如果你想使用表单对象,你必须使用this.parentNode

onclick="google.script.run.withSuccessHandler(showMsgForLoginAttempt)
  .checkLogin(this.parentNode)" />

Add a <script>标记到index.html带有成功处理程序的文件。添加withSuccessHandler() to the google.script.run服务器调用。

索引 html:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <form>    
        First name:&nbsp;&nbsp;
        <input type="text" name="user_name"><br><br>
        Password:&nbsp;&nbsp;
        <input type="password" name="user_password"><br><br>
        Staff or Student?
        <br>

        <input type="radio" name="staff" value="staff" checked> Staff<br>
        <input type="radio" name="student" value="student"> Student<br>
        <br><br>
        <input type="button" value="OK"
             onclick="google.script.run.withSuccessHandler(showMsgForLoginAttempt).checkLogin(this.parentNode)" />

        <input type="button" value="Close"
             onclick="google.script.host.close()" />



    </form>

  </body>

        <script>
             window.showMsgForLoginAttempt = function(valueFromServer) {
               console.log('showMsgForLoginAttempt ran');
             alert('Your attempt: ' + valueFromServer);
             };
        </script>
</html>

服务器代码:

function checkLogin(formObject) {
  var passwordsMatch;
  Logger.log('formObject: ' + formObject)
  Logger.log('formObject: ' + formObject.user_name);
  formObject
  //SpreadsheetApp.getUi().alert('Hello, world!');
  passwordsMatch = true;  //check password

  if (passwordsMatch) {
    return true;
  } else {
    return false;
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将网络表单值返回至 Google 应用脚本 的相关文章

  • 如何在 Windows 网络中的 Intranet Web 应用程序中获取用户的用户名

    我内部有一个简单的 HTML 页面 它只显示一个表单并要求用户填写 我想自动捕获Windows域用户名和机器名 并将其与表单中收集的数据一起提交 我可以在客户端这样做吗 HTML JavaScript 或者我被迫在服务器端执行此操作 我还不
  • ASP.NET 验证控件和 Javascript 确认框

    我有一个使用 NET 服务器端输入验证控件的页面 此页面还有一个 javascript 确认框 在提交表单时会触发该确认框 当前 当选择 提交 按钮时 会出现 javascript 确认框 一旦确认 就会触发 ASP NET 服务器端验证控
  • 是否有任何理由使用 axios 而不是 ES6 fetch [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 研究了 axios 和 ES6 fetch 的文档 我发现两者非常相似 并且都受到 ajax 及其简写的强烈影响 axios 的主要优点是浏览器
  • 如何使用 Nextjs/React 将 JSON 对象导出到 Excel?

    我有一个检索 json 对象的端点 如下所示 data id 1 temaIndicador Indian codigo 001 observaciones Interactions Specialist tertiary Regional
  • 保证金如何运作?

    我在下面提供了marginfix这是一个块级元素并且one and two也是块级的 但它们是浮动的 这就是为什么它们位于同一行布局的原因 但是marginfix也不浮动 块级元素应位于该元素下方 如下所示
  • 如何在单击按钮时清除反应挂钩中的间隔

    我正在用反应钩子构建一个简单的计时器 我有两个按钮启动和重置 当我单击开始按钮时 handleStart 函数工作正常 计时器启动 但我不知道如何在单击重置按钮时重置计时器 这是我的代码 const App gt const timer s
  • document.write 在同一页面上显示内容。

    我对 javascript document write 方法有疑问 大多数情况下 当我使用 document write 时 它会向我显示在不同页面中使用该方法编写的内容 例如 如果我写这样的命令 document write Hello
  • 公开闭包内的方法

    当我们在闭包内创建一个方法时 该方法将成为该闭包的私有方法 并且在我们以某种方式公开它之前无法访问它 怎么可能暴露呢 您可以返回对它的引用 var a function var b function I m private alert go
  • @fontface - 禅宗购物车中的 403 禁止错误

    我不确定这是否是发布此内容的正确位置 因为我不知道问题出在哪里 基本上 字体现在对我来说真的很痛苦 而且没有任何效果 我尝试从 google fonts 加载字体 但遇到了 IE 问题 所以我决定下载它们并自己提供服务 但现在它无法在任何浏
  • 为什么这个递归函数返回未定义?

    我正在尝试编写一个使用递归组合两个字符串的函数 我的代码如下 但我不知道为什么该函数返回未定义 特别是当我在基本情况下使用 console log 时 它不会打印未定义而是打印正确的值 var str3 function merge str
  • 文件缓存:查询字符串与上次修改时间?

    我正在研究缓存网站资源的方法 并注意到大多数与我类似的网站都使用查询字符串来覆盖缓存 例如 css style css v 124942823 后来 我注意到每当我保存 style css 文件时 最后修改的标头都会 更新 使得查询字符串变
  • 当rest api应用程序服务器(express)和Angulars js应用程序在不同端口上运行时出现Cors问题

    我有用node js编写的rest api应用程序 express在端口3000上运行 而angularjs应用程序在同一服务器上的端口9001上运行 从 angularjs 应用程序调用 rst api 时 出现了 cors 问题 在re
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • 如何在 CSS 中将容器内的多个 div 居中

    我正在测试像 Windows Metro 风格的中心分隔线 container height 300px width 70 background EEE margin 10px auto position relative block ba
  • WebpackError:ReferenceError:Gatsby 上未定义窗口

    我已经在互联网上进行了大量搜索 但无法解决这个问题 我正在使用 Gasby 开发静态页面 但遇到此错误 WebpackError ReferenceError window is not defined 我的线索是 这与我正在使用的引导 模
  • 如何计算一行中Flexbox项目的数量?

    网格是使用 CSS flexbox 实现的 Example http jsbin com jumosicasi edit html css js output 本示例中的行数为 4 因为我出于演示目的固定了容器宽度 但是 实际上 它可以根据
  • 在什么情况下,使用 HTTP/2 单独加载图像会比使用 HTTP/1.1 中的精灵一次加载所有图像慢?

    HTTP 2 使多路复用连接成为可能 从而消除了与服务器的多个连接的需要 通过单个连接 可以将许多单独的图像发送到客户端 这避免了将多个图像组合成一个并使用 CSS 将其分开的旧图像精灵模式 我很好奇精灵在 HTTP 2 世界中是否仍然会更
  • 从json中获取所有子节点

    我有以下 json var source k 01 k 02 children k 05 k 06 children k ABC k PQR k 07 k 03 我希望能够指定 k 的值并取回所有孩子 以及孙
  • 在引导程序中以编程方式更改选项卡窗格选项卡

    我使用的选项卡窗格定义为 ul class nav nav tabs li a href personal Personal Information a li li class active a href contact Contact a
  • jQuery appendTo(), json 在 IE 6,7,8 中不起作用

    我这两天绞尽脑汁想找到解决办法 我使用 jQuery ajax 从数据库中获取值 以便在另一个框发生更改时更新一个框 php 脚本从数据库中获取值 然后输出 json 它在 FF 中工作正常 但在所有版本的 IE 中 选择框都不会更新 我已

随机推荐

  • 如何从复合泛型类型中检索值?

    如何从泛型中检索值 具体来说 我正在尝试以下操作 Test let result Validate goodInput How to access record let request getRequest result 这是代码 type
  • 长文本微调器无法正常工作

    我的旋转器有一些问题 根据我的日期 我必须添加到TableRow a TextView与EditText or a Spinner 我必须在 Spinner 中显示的数组有点长 我用带有短文本的数组测试了我的代码 它看起来像这样 这里唯一的
  • Rails - 具有空数组的强参数

    我正在发送一组关联 ID 例如foo ids到我的控制器 为了允许值数组 我使用 params permit foo ids 现在的问题是 如果我发送一个空数组foo ids 该参数被忽略 而不是清除所有foos正如空数组应该做的那样 关联
  • 如何在响应拦截器中再次发送请求?

    我在我的应用程序中创建了一个拦截器来检测会话丢失 服务器发送 HTTP 419 在这种情况下 我需要从服务器请求一个新会话 然后我想自动再次发送原始请求 也许我可以将请求保存在请求拦截器中 然后再次发送 但可能有更简单的解决方案 请注意 我
  • Android 新的 CallLog.Calls.NUMBER_PRESENTATION 字段有什么用?

    我注意到 API 级别 19 Kitkat 中添加了一个名为 CallLog Calls NUMBER PRESENTATION 的新字段 The 文档 http developer android com reference androi
  • 在Java中,是否可以执行一个方法一段时间,并在达到时间限制后停止?

    我有下载网页的代码 HttpURLConnection connection private String downloadContent InputStream content Source parser try content conn
  • 在 MVC 框架中将 noSQL 和 ORM 结合起来用于实际案例应用程序

    一段时间以来 我一直在尝试将过去几年中读到的一些有关 noSQL couchDB mongoDB Redis 的 酷 东西投入实际使用 我非常习惯使用 Django 编写应用程序 并开始使用 Play 当 Java 是唯一可接受的部署选项
  • 如何以编程方式获取 vmmap 中显示的信息?

    任何看过 Mark Russovich 演讲 揭示内存管理之谜 的人都知道 vmmap 工具可以向您显示与进程限制 普通 32 位 Windows 上为 2GB 相关的内容 而其他工具似乎很少了解这些内容 我希望能够以编程方式监控我的rea
  • WPF 无法从 MouseDown 事件获取触摸位置

    我有一个 WPF 项目是在 NET v 4 0 添加触摸支持之前编写的 因此仅处理鼠标事件 我在用手指在触摸屏上测试项目时遇到了这个问题 问题是 位置 X Y 在第一次触摸中被正确检索 但 X Y 值在后续触摸中保持不变 无论我触摸哪里 即
  • 无效的 PHP JSON 编码

    我正在 PHP 5 3 1 中的一个项目中工作 我需要将 JSON 字符串发送到 web 服务 在 python 中 但是从 json encode 获得的结果不会作为有效的 JSON 传递 我正在使用 JSLint检查有效性 我应该补充一
  • 在 Windows powershell 中使用 svn 缺少参数 -m

    我正在尝试在 Windows PowerShell 上运行它 svn ci m directory name 但它返回 svn E205005 日志消息是一个路径名 F 是故意的吗 使用 force log 覆盖 我尝试 cd 该目录并在没
  • Django持久数据库连接

    我将 django 与 apache mod wsgi 和 PostgreSQL 都在同一主机上 一起使用 并且我需要处理大量简单的动态页面请求 每秒数百个 我面临的问题是 瓶颈是 django 没有持久的数据库连接 并且在每个请求上重新连
  • lapply 和 mutate_all/for 循环

    我在列表中有几个数据框 我必须通过标准化所有列中的所有数据来修改这些数据框 基本上 将每行 列除以该列数的总和 使用 lapply 加载所有原始数据帧后 我想迭代所有列以执行此类操作 即 mutate df df my column df
  • 如何正确解析这种日期?

    我无法为我的日期找到正确且干净的工作解决方案 其格式如下 201406082159 6月8日 21 59 此处 我上次尝试的是这样的 SimpleDateFormat format2 new SimpleDateFormat YYYYMMD
  • 将宽变长,但重复特定列

    我有一个数据框 如下所示 df2 pd DataFrame pid 1 2 3 4 BP1Date 12 11 2016 12 21 2016 12 31 2026 np nan BP1di 21 24 25 np nan BP1sy 12
  • SIM900 GSM/GPRS 未获得正确的 AT+CREG?回答

    我使用的是带有 IComsat SIM900 GSM GPRS 扩展板的 Arduino UNO 使用以下教程 Arduino 实时 GPS 追踪器 http www samaria me uk 2011 12 arduino live g
  • org.xml.sax.SAXParseException;cvc-complex-type.2.4.c:匹配通配符严格,但找不到声明

    我在这里要做的就是让邮件发送器通过我的 Java 代码工作 我查看了类似的问题 并按照此处的建议删除了 spring 版本号cvc complex type 2 4 c 匹配通配符严格 但找不到元素 mvc annotation drive
  • Play框架2.5.0 Websockets示例[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 播放框架 2 5 0 Websockets 示例 在 play 2 5 0 websockets 代码
  • 创建新分支时,基础分支是什么?

    创建分支时我需要确认 纠正我的假设 如果我在主分支中 执行以下操作后 git checkout b some branch 这意味着我已经从 master 开始了一个新分支 另一方面 如果我签出另一个分支 并在那里创建一个分支 git ch
  • 将网络表单值返回至 Google 应用脚本

    我有一个谷歌表格脚本 允许用户输入某些数据 当用户单击 确定 时 我希望能够将这些值传递回谷歌应用程序脚本中的函数 这是我试图开始工作的 Google 表格脚本 函数 checkLogin 确实会被调用 直到我尝试从网页将值传递给它 剧本