需要检查登录用户名和密码,然后从以前的条目中获取数据

2024-02-01

根据我之前问过的这个问题(需要从 Google Apps 脚本查询 Google Sheet 的特定数据 https://stackoverflow.com/questions/65717284/need-to-query-google-sheet-for-specific-data-from-google-apps-script).

我创建了一个网络应用程序来跟踪我公司员工的工作时间,该网络应用程序很简单,它首先要求他们提供用户名和密码,然后允许他们注册他们的进入时间或退出时间。现在,我需要找到一种方法来检查用户名和密码(在数据库中)之间是否匹配,如果这是真的,则将该员工上次提交的信息带到网络应用程序中,最后一次提交的数据可以在另一个应用程序上找到从网络应用程序接收数据的工作表。

这是一个最小的可重现示例,其中仅要求输入名称和密码,如果正确,则显示另一个显示,其中会显示该用户上次提交到 Web 应用程序的时间戳。

var name="";

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('Form');
}
function AddRecord(Name) {
  
  // get spreadsheet details
  var url = 'https://docs.google.com/spreadsheets/d/1CJoPuq3sHE5L31GwlvS4Zygm1sL3M0HGC7MgW3rCq3g/edit#gid=0';
  //Paste URL of GOOGLE SHEET
  var ss1= SpreadsheetApp.openByUrl(url);
  var webAppSheet1 = ss1.getActiveSheet();
  const Lrow = webAppSheet1.getLastRow();
  const data = [Name, new Date ()];

  webAppSheet1.getRange(Lrow+1,1, 1, data.length).setValues([data])       
}

function checklogin(Name,Password) {
  var url = 'https://docs.google.com/spreadsheets/d/1CJoPuq3sHE5L31GwlvS4Zygm1sL3M0HGC7MgW3rCq3g/edit#gid=0'; //Paste URL of GOOGLE SHEET
  var ss2= SpreadsheetApp.openByUrl(url);
  var webAppSheet2 = ss2.getSheetByName("DataBase");
  var checkuser = webAppSheet2.getRange(2, 1, webAppSheet2.getLastRow(), 1).createTextFinder(Name).matchEntireCell(true).findNext();
  var obj = {checkuser: checkuser ? 'TRUE' : 'FALSE'};
  var sheet = ss2.getSheetByName("ReceivedData");
  var ranges = sheet.getRange(2, 1, sheet.getLastRow(), 1).createTextFinder(Name).matchEntireCell(true).findAll();
  if (ranges.length > 0) {
    obj.lastTimestamp = ranges.pop().offset(0, 1, 1, 1).getDisplayValue();
    return obj;
  }
  return obj;
}
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
    <style>
    #LastR{
    display: inline-block;
    }
    </style>
    <script>
    function AddRow()
    {
      var Name = document.getElementById("Name").value;  
      google.script.run.AddRecord(Name);
      document.getElementById("Name").value = '';
      }    
function LoginUser() {
  var Name = document.getElementById("Name").value;
  var Password = document.getElementById("Password").value;
  google.script.run.withSuccessHandler(function({checkuser, lastTimestamp}) {
    if(checkuser == 'TRUE') {
      document.getElementById("loginDisplay").style.display = "none";
      document.getElementById("dataDisplay").style.display = "block";
      document.getElementById("lastTimestamp").innerHTML = lastTimestamp;
    } else if(checkuser == 'FALSE') {
      document.getElementById("errorMessage").innerHTML = "Name not found";
    }
  }).checklogin(Name,Password);
}
    </script>
</head>
<body>
<div id="loginDisplay">
    <div> 
    <label>Name</label><br>
    <input type="text" id="Name" />
    </div>
        <div> 
    <label>Password</label><br>
    <input type="text" id="Password" />
    </div>
    <div class="btn">
<input value="Login" onclick="LoginUser()"
 type="button">
 <span id="errorMessage"></span>
</div> 

    </div>
    <div style="display:none"  id="dataDisplay">
    <div>
<label>Last Registration</label>
<br><br>
<div class="LastR" id="lastTimestamp"></div>
<button type="button" value="Add" onclick="AddRow()">Send</button>
</div>
</div>
  </body>
</html>

这是一张表格,您可以在其中处理或复制信息。https://docs.google.com/spreadsheets/d/1CJoPuq3sHE5L31GwlvS4Zygm1sL3M0HGC7MgW3rCq3g/edit#gid=0 https://docs.google.com/spreadsheets/d/1CJoPuq3sHE5L31GwlvS4Zygm1sL3M0HGC7MgW3rCq3g/edit#gid=0


我相信你的目标如下。

  • 您想要搜索输入的值Name and Password from DataBase电子表格中的工作表。
  • 您想要显示从以下位置检索到的最后一个时间戳ReceivedData通过搜索输入的值来工作表DataBase sheet.

针对这种情况,我建议修改var obj = {checkuser: checkuser ? 'TRUE' : 'FALSE'};函数的checklogin为了实现您的目标如下。

From:

var obj = {checkuser: checkuser ? 'TRUE' : 'FALSE'};

To:

var obj = {checkuser: checkuser && checkuser.offset(0, 1).getValue() == Password ? 'TRUE' : 'FALSE'};
  • 在本次修改中,输入Name从第一列开始搜索 value,然后,Password从与搜索的第一列相同的行的第二列开始检查。并且,当两个值相同时,TRUE被返回。

参考:

  • 偏移量(行偏移量,列偏移量) https://developers.google.com/apps-script/reference/spreadsheet/range#offsetrowoffset,-columnoffset
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要检查登录用户名和密码,然后从以前的条目中获取数据 的相关文章

  • 如何仅在 NextJS 站点构建期间使用 getInitialProps?

    当使用 NextJS 构建静态站点时 我想要getInitialProps方法仅在构建步骤期间触发 而不是在客户端上触发 在构建步骤中 NextJS 运行getInitialProps 方法 https nextjs org docs fe
  • 如何将此 HTML 表格布局解决方案转换为浮动 div 解决方案?

    我经常需要列出各种尺寸的项目images在左边和text在右边 像这样 替代文本 http www deviantsart com upload 7s01l5 png http www deviantsart com upload 7s01
  • 如何使用 jest 模拟第三方库

    我正在开发一个node js应用程序使用nestjs我有一堂课叫LoggerService如下 export class LoggerService private logger Rollbar constructor this logge
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • 即使我可以监视其他方法,也无法监视事件处理程序

    我想使用 Jest Jasmine Enzyme 测试 React 中的事件处理程序 MyComponent js import React from react class MyComponent extends React Compon
  • 检查 touchend 是否在拖动后出现

    我有一些代码可以更改表的类 在手机上 有时表格对于屏幕来说太宽 用户将拖动 滚动来查看内容 但是 当他们触摸并拖动表格时 每次拖动都会触发 touchend 如何测试触摸端是否是触摸拖动的结果 我尝试跟踪dragstart和dragend
  • 如何使用 JavaScript 获取没有 HTML 元素的纯文本?

    我的 HTML 中有 1 按钮和一些文本 如下所示 function get content I don t know how to do in here
  • W3C 验证器:“握手警报:unrecognized_name”

    我正在尝试验证我的网站W3C Nu Html 检查器 https validator w3 org nu doc https 3A 2F 2Fwww healthdrop in 2F但我遇到了以下错误 不知道为什么 IO 错误 握手警报 u
  • Typeahead.js substringMatcher 函数说明

    我只是在做一些研究Typeahead js这是一个非常酷的图书馆 感谢文档 我已经成功地获得了一个基本的示例 该文档也非常好 但是我试图弄清楚以下代码块实际上在做什么 var substringMatcher function strs r
  • 如何将送货地址复制到帐单地址

    我想知道是否可以将送货地址复制到帐单地址 当用户单击与送货地址相同的复选框时 送货地址值将被复制到账单输入字段 我完成了大部分部分 但我不确定如何将选择菜单 状态 值复制到帐单地址 我真的很感谢任何帮助 My code document r
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试
  • 将 javascript 整数转换为字节数组并返回

    function intFromBytes x var val 0 for var i 0 i lt x length i val x i if i lt x length 1 val val lt lt 8 return val func
  • 我可以停止 :hover 应用于元素吗?

    假设我有一些 CSS button hover font weight bold 我怎样才能防止 hover随意应用样式 我的目标用例是当元素被禁用时 例如 使用这个 HTML
  • JavaScript 代码在不使用 ActiveX 的情况下截取网站屏幕截图

    我有一个用户与之交互的 JavaScript 应用程序 我需要保存当前界面的外观 裁剪出我需要的部分 或者通过指定div只拍摄我需要的部分 然后发送回服务器 显然任何外部服务都无法做到这一点 我需要一个 JavaScript 或Flash
  • 如何在 javascript 正则表达式中匹配平衡分隔符?

    我原以为这个问题是不可能的 据我所知 Javascript 的正则表达式既没有递归插值 也没有漂亮的 NET 平衡组功能 但问题就在那里 如问题 12 所示正则表达式 alf nu http regex alf nu 匹配平衡对 lt an
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 在 Javascript 中减少/分组数组

    基于this https stackoverflow com a 40774906 3254598例如 我想以稍微不同的方式按对象进行分组 结果应该如下 key audi items make audi model r8 year 2012
  • HTML 默认图像大小

    我在我的代码上显示 3 张图片 图片具有不同的尺寸 宽度和高度 div class row div class col lg 12 h2 class page header Gallery h2 div div class col md 4
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • Java - 如何获取 JSON 数组中的对象值?

    我有一个类似于下面示例的 JSON 我正在尝试获取一些值 例如值 results shipper id results updated false notification false some data id 15989 pieces 0
  • 通过管道 $_POST 到外部命令

    我有一个程序可以读取 JSON 请求stdin 我想用 PHP 调用它 这就是我现在所拥有的 这可行 但是有没有更直接的方法将 PHP 中的字符串放入stdin 类似的东西pipe json encode POST JSON NUMERIC
  • jquery html() 去掉脚本标签

    我需要用 ajax 调用生成的 html 替换页面中 div 的内容 问题是 html 中有一些必要的脚本 并且 jquery html 函数似乎将它们删除了 我需要过滤响应并只获取特定的 div 我正在考虑一种解决方法 即从 ajax 响
  • 返回 JSON 无法正常工作

    我正在尝试从数据库返回数据并将其转换为 json 并将其发送回我的 javascript 然而它并没有按计划工作 它在 JavaScript 上作为数组返回 JavaScript function getData id ajax url s
  • 如何获得两列之间的差异

    我有一个查询生成如下内容 StartTimestamp EndTimestamp 100 450 150 500 我希望结果还包括 EndTimestamp 和 StartTimestamp 之间的差异 StartTimestamp End
  • 如何使用 Windows Installer XML 注册 COM 对象

    我遇到以下问题 在我的 WiX 设置中 我需要注册一个 COM 对象 我有一个 tlb 文件和一个 dll 文件 在我的示例中 XYCommon dll 和 XYCommon tlb 现在我想要进行设置以注册 TLB 如何在 Windows
  • 隐藏自动生成的 CTest 目标

    我在 CLion 中使用 CMake 和 CTest 令人烦恼的是 CTest 生成了大量我不关心的目标 连续的 持续构建 连续配置 持续覆盖 连续内存检查 连续启动 连续提交 连续测试 持续更新 实验性的 实验构建 实验配置 实验覆盖范围
  • 如何使用 VSCode 调试器来调试 Gunicorn 工作进程?

    我有一个在 Ubuntu 14 04 上用 Python 3 4 编写的 GUnicorn Falcon Web 服务 我想使用 VSCode 调试器来调试此服务 我目前使用命令启动该进程 usr local bin gunicorn co
  • 水平滑动手势和垂直页面滚动

    我正在构建一个移动网站 并且有一个图像幻灯片放映 允许水平滑动图像 我使用的 javascript 库是 bxslider 然而 如果用户触摸幻灯片并想要向上 向下滚动页面 则幻灯片会阻止垂直滚动 因此必须触摸网站的另一部分 有人可以告诉我
  • 错误:未知命令:木桶 ||尽管使用了多实例试验

    我已经无能为力了 我不断收到错误消息Error Unknown command cask尽管我之前已经通过此链接使用了很多不同的安装 自制木桶选项无法识别 https stackoverflow com questions 30413621
  • 如何在sass中使用循环生成多个mixin(mixin lib)

    我想保持我的 sass 代码简短 代替 mixin tg font size line height something related to font size and line height mixin h1 include tg mi
  • 在运行时创建类时,使用 exec 相对于 type() 有什么优势?

    我想在 python 中在运行时动态创建类 例如 我想复制下面的代码 gt gt gt class RefObj object def init self ParentClassName print Created RefObj with
  • THREE.js 对单个 > 500k 多边形(面)对象、与地球的线相交的光线投射非常慢

    在我的项目中 我让一名玩家环游世界 地球不仅仅是一个球体 它还有山脉和山谷 所以我需要改变玩家的 z 位置 为此 我从玩家的位置向单个对象 地球 投射一条光线 并得到它们相交的点并相应地改变玩家的位置 我仅在玩家移动时进行光线投射 而不是在
  • 如何使用 R CMD BATCH 抑制行号输出?

    如果我有一个 R 脚本 print hi commandArgs 我使用以下命令运行它 r CMD BATCH slave no timing test r output txt 输出将包含 1 hi 1 Library Framework
  • 从调用者的角度发出警告(又名 Python 相当于 Perl 的鲤鱼)?

    简洁版本 有没有办法在Python中达到Perl所达到的相同效果Carp carp http perldoc perl org Carp html公用事业 长版 对于那些不熟悉的人Carp carp 假设我们正在实现一些库 API 函数 即
  • Swift 中的静态属性

    我正在尝试将以下 Objective C 代码转换为 Swift 在我的 Objective C 代码中 有一个静态变量 可以通过类方法访问它 implementation SomeClass static NSMutableArray i
  • Python - 替换数组中 1 之前的值

    假设我有一个由 0 和 1 组成的 pandas 系列 但这可以与 numpy 数组或任何可迭代对象一起使用 我想创建一个公式 它接受一个数组和一个输入 n 然后返回一个新系列 其中第 n 个索引处包含 1 直到每次原始系列中至少有一个 1
  • 删除并重新部署应用程序后,iOS CoreData + iCloud 中出现错误消息

    该应用程序从一开始就放在 iCloud 中 因此我有机会向其中填充数据 并看到其他设备上发生的同步 但是 仅在一台设备上删除并重新部署应用程序后 我开始遇到问题 特别是在启动时 此时需要花费很多时间 NSLog add coordinato
  • 文本没有出现在 Rmarkdown 中?

    我创建了一个名为 widgets t html 的 html 文件 几个情节图组合在一起 使用本教程 https beta rstudioconnect com jjallaire htmlwidgets showcase storyboa
  • 需要检查登录用户名和密码,然后从以前的条目中获取数据

    根据我之前问过的这个问题 需要从 Google Apps 脚本查询 Google Sheet 的特定数据 https stackoverflow com questions 65717284 need to query google she