Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将HTML表单提交的值传递到Google工作表,并在Google应用程序脚本Web应用程序中返回到HTML_Javascript_Html_Web Applications_Google Apps Script_Google Apps For Education - Fatal编程技术网

Javascript 如何将HTML表单提交的值传递到Google工作表,并在Google应用程序脚本Web应用程序中返回到HTML

Javascript 如何将HTML表单提交的值传递到Google工作表,并在Google应用程序脚本Web应用程序中返回到HTML,javascript,html,web-applications,google-apps-script,google-apps-for-education,Javascript,Html,Web Applications,Google Apps Script,Google Apps For Education,我正在尝试创建一个基本的时钟网络应用程序 到目前为止,我正在使用创建,它接受输入值并将它们放入时间戳部分 我需要它使用表单中的一个值并执行查找(使用longId并为我找到名称),然后将(名称)值返回到html页面,以验证最终用户是否正确识别了它们。不幸的是,我不知道我做错了什么。如果我需要提供更多信息,请告诉我 编辑1 我想我还不够清楚。我不需要条目中的用户信息,我需要查找中的用户。用户将以匿名方式输入其ID,我需要将ID与他们的信息进行匹配,并将信息带回给他们进行验证 编辑2 使用Br提供的链

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

到目前为止,我正在使用创建,它接受输入值并将它们放入时间戳部分

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

编辑1

我想我还不够清楚。我不需要条目中的用户信息,我需要查找中的用户。用户将以匿名方式输入其ID,我需要将ID与他们的信息进行匹配,并将信息带回给他们进行验证

编辑2

使用Br提供的链接。Sayan,我已经创建了使用如上所述来测试其中一件。吐出:未定义。它应该会吐出“学生3”,但仍然不确定我做错了什么。

请试试这个:


(来源:)

另外,请看一下:

编辑:

请对您的功能进行这些更改,并告知我们

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;
    }
  }
}

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

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);"
为了使其工作,显然您需要相应地命名字段

编辑:代码中唯一没有包含的是一个成功处理程序,它将出现在GAS脚本的html中。应该为你指出一个可以解决这个问题的方向


希望这有帮助。

下一步按钮抓取学生输入字段的一种方式:

将值发送到Javascript.html中的此函数:

function studentName(value) {
  google.script.run
  .withSuccessHandler(findSuccess)
  .findStudent(value);
}
它将其发送到
code.gs中的
查找学生(值)
执行查找后,返回值返回到
findSuccess(result)
返回Javascript.html。从那里处理
结果


还考虑在“帮助>欢迎屏幕”中保存股票<代码>预防错误()/<代码>与Web应用程序模板一起出现的代码。 哎呀。这仍然是测试遗留下来的。删除。它应该使用标记为“下一步…”的表单“提交”输入触发。您应该能够在Javascript.html文件中看到它。您可以在

student.push([data[i][0]])中删除外部
[]
student.push(数据[i][0])
也请告诉我们,
Logger.log(data[i][0])
说了什么?把它放在Logger.log(“yes”)
后面。否则,我们需要使用
console.log()
来查看发生了什么。我将对此进行研究。谢谢!和-哇哦,在Web应用程序模板上。我从来没用过。这是一个很大的信息接受!那会花我一分钟的时间来思考。非常感谢。这是一个巨大的帮助,我想我几乎已经得到了,但我仍然在做错事。请参阅原始帖子中的更新。对不起,我只是觉得上下文是件好事。我真的不知道我在找什么,所以我真的不知道像你们这样的人需要看什么。以后我将尝试简化。您可以在
student.push([data[I][0]])中取消外部
[]
student.push(数据[i][0])
也请告诉我们,
Logger.log(data[i][0])
说了什么?将其放在Logger.log(“是”)之后
。否则我们需要使用
console.log()
来查看发生了什么。我在回答中对函数本身进行了一些编辑。请尝试让我知道。正如Bryan P所提到的,您运行
google.script.run
,并在
code.gs
中的函数中执行您已经拥有的
返回学生
。仅替换
.findStudent(值).findValue(电子表格ID)
进行编码>。现在您的
Index.html
code.gs
不匹配<代码>值
-传递给函数的值本身不包含任何内容。请检查并进行更改,然后让我知道。:)参见问题编辑。不幸的是,现在所有ID都返回为“学生1”。为了提供帮助,我添加了一些控制台日志。不需要console.log()。请发布Logger.log()条目。