1

我正在尝试创建一个基本的时钟网络应用程序。

到目前为止,我正在使用这个脚本来创建这个 Web 应用程序,它接受输入值并将它们放在这个电子表格中作为时间戳部分。

我需要它使用表单中的一个值并在此工作表中执行查找(获取 longId 并找到我的名称)并将(名称)值返回到 html 页面作为最终用户的验证他们是正确识别。不幸的是,我不知道自己做错了什么。如果我需要提供更多信息,请告诉我。

编辑 1

我在想我说的不够清楚。我不需要条目中的用户信息,我需要查找中的用户。用户将匿名输入他们的 ID,我需要将 ID 与他们的信息相匹配,然后将信息带回以供他们验证。

编辑 2

使用 Br 提供的链接。Sayan,我已经使用上面的电子表格创建了这个脚本测试其中的一部分。这里的网络应用程序吐出:未定义。它应该吐出“学生3”仍然不确定我做错了什么。

4

3 回答 3

1

下一个按钮获取学生输入字段的一种方法:

<input type="submit" onclick="studentName(document.getElementById('student').value)" value="Next..."/>

这会将值发送到Javascript.html中的这个函数:

function studentName(value) {
  google.script.run
  .withSuccessHandler(findSuccess)
  .findStudent(value);
}

它将它发送到findStudent(value)Code.gs 进行查找,返回值findSuccess( result )Javascript.html中背靠背。result从那里处理。

preventDefault()还可以考虑将Web App 模板附带 的股票代码保留在“帮助”>“欢迎屏幕”中。

于 2016-02-22T23:00:26.540 回答
1

请试试这个:

从 Google 电子表格中获取数据
(来源:technokarak.com

也请看一下:

使用 GAS 从电子表格数据中检索行

编辑:

请在您的功能中进行这些更改并让我们知道。

function findValue() {
  var data =        SpreadsheetApp.openById("15DRZRQ2Hcd7MNnAsu_lnZ6n4kiHeXW_OMPP3squbTLE").getSheetByName("Volatile Data").getDataRange().getValues();
  for(i in data) {
    if(data[i][3] == 100000003) {
      Logger.log("yes");
      Logger.log(data[i][0]);
      var student = [];
      student.push(data[i][0]);
      return student;
    }
  }
}
于 2016-02-22T11:27:07.313 回答
0

这是一个复杂的答案,我在以下方面取得了很大的成功:

function process(object){

  var user = Session.getActiveUser().getEmail();
  var key = object.Key;

  send(key);

}

function send(k){

  var ss = 
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var lastR = ss.GetLastRow();

  ss.GetRange(lastR,1).SetValue(k);

}

在您的 html 按钮上,您需要在标签内

onClick="google.script.run
          .withSuccessHandler(Success)
          .process(this.parentNode);"

为了使它起作用,显然您需要相应地命名您的字段。

编辑:我没有在代码中包含的唯一内容是 Success 处理程序,它将位于 GAS 脚本的 html 中。应该为您指明可以解决该问题的方向。

希望这可以帮助。

于 2016-02-22T17:37:21.590 回答