Javascript 如何将HTML表单提交的值传递到Google工作表,并在Google应用程序脚本Web应用程序中返回到HTML
我正在尝试创建一个基本的时钟网络应用程序 到目前为止,我正在使用创建,它接受输入值并将它们放入时间戳部分 我需要它使用表单中的一个值并执行查找(使用longId并为我找到名称),然后将(名称)值返回到html页面,以验证最终用户是否正确识别了它们。不幸的是,我不知道我做错了什么。如果我需要提供更多信息,请告诉我 编辑1 我想我还不够清楚。我不需要条目中的用户信息,我需要查找中的用户。用户将以匿名方式输入其ID,我需要将ID与他们的信息进行匹配,并将信息带回给他们进行验证 编辑2 使用Br提供的链接。Sayan,我已经创建了使用如上所述来测试其中一件。吐出:未定义。它应该会吐出“学生3”,但仍然不确定我做错了什么。请试试这个: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提供的链
(来源:) 另外,请看一下: 编辑: 请对您的功能进行这些更改,并告知我们
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()条目。