从下拉列表传递数据=>;到javascript函数(谷歌应用程序脚本)
希望我已经包含了足够多的代码,不必全部发布 我有一个调用displayDropdown()的主函数,它调用一个HTMLService并显示一个带有下拉菜单和文本框的模式:从下拉列表传递数据=>;到javascript函数(谷歌应用程序脚本),javascript,google-apps-script,Javascript,Google Apps Script,希望我已经包含了足够多的代码,不必全部发布 我有一个调用displayDropdown()的主函数,它调用一个HTMLService并显示一个带有下拉菜单和文本框的模式: . 这是存储数据的(压缩)javascript代码: 函数sendData(){ var值={}; values.textJob=document.getElementById(“输入”).value; values.selectedJob=document.getElementById(“dropJob”).value;
.
这是存储数据的(压缩)javascript代码:
函数sendData(){
var值={};
values.textJob=document.getElementById(“输入”).value;
values.selectedJob=document.getElementById(“dropJob”).value;
google.script.run.withSuccessHandler(closeIt.grabData(值);
};
函数closeIt(){
google.script.host.close()
};
然后,我的.gs文件中的grabData()函数:
function grabData(values) {
if(values.textJob=="")
//return values.selectedJob;
Logger.log(values.selectedJob);
else
//return values.textJob;
Logger.log(values.textJob);
}
如果我将返回结果注释掉,并尝试记录数据,则会记录预期的数据。但是如果我将其反转,并返回它,则在调用displayDropdown()之后返回到main函数,并将变量设置为等于grabData函数:
displayDropdown();
var stuff = grabData();
Logger.log(stuff);
我得到一个错误,上面写着:
为什么我不能访问数据?这是我通常将数据从HTML表单发送到GS的操作: HTML
<form method="POST" action="#" id="formID">
<button class="btn" type="submit">Send</button>
</form>
我通常将“this”作为参数传递,并处理GS上的信息
编辑:
GS
document.querySelector("#formID").addEventListener("submit", function(e) {
var test = google.script.run.withSuccessHandler('client side function').processForm(this);
});
function processForm(values){
Logger.log(values);
Logger.log(typeof values);
}
屏幕截图:
1-网络应用程序
2-服务器日志(函数processForm)
这是我通常将数据从HTML表单发送到GS的操作: HTML
<form method="POST" action="#" id="formID">
<button class="btn" type="submit">Send</button>
</form>
我通常将“this”作为参数传递,并处理GS上的信息
编辑:
GS
document.querySelector("#formID").addEventListener("submit", function(e) {
var test = google.script.run.withSuccessHandler('client side function').processForm(this);
});
function processForm(values){
Logger.log(values);
Logger.log(typeof values);
}
屏幕截图:
1-网络应用程序
2-服务器日志(函数processForm)
谢谢你的建议。不幸的是,这也不起作用。你能提供一个你正在发送的示例吗<如果试图传递日期、函数、表单之外的DOM元素或其他禁止类型(包括对象或数组中的禁止类型),则代码>请求将失败。创建循环引用的对象也将失败,数组中未定义的字段将变为null。@Cooper我正在发送一个包含两个字符串的对象。这是sendData函数的一部分,显示在帖子的主照片下面。@JuanBravoRoig再次感谢-你提供给我的基本上就是我现在拥有的。我能够将表单数据发送到GS函数(如果我记录的话)。但是我需要把这个函数赋给一个变量,然后从另一个函数调用它。这就是它失败的地方。这是不可能的,因为你期待的是你没有提供的论点!为什么要调用另一个函数?您可以在grabData函数中直接执行操作。谢谢您的建议。不幸的是,这也不起作用。你能提供一个你正在发送的示例吗<如果试图传递日期、函数、表单之外的DOM元素或其他禁止类型(包括对象或数组中的禁止类型),则代码>请求将失败。创建循环引用的对象也将失败,数组中未定义的字段将变为null。@Cooper我正在发送一个包含两个字符串的对象。这是sendData函数的一部分,显示在帖子的主照片下面。@JuanBravoRoig再次感谢-你提供给我的基本上就是我现在拥有的。我能够将表单数据发送到GS函数(如果我记录的话)。但是我需要把这个函数赋给一个变量,然后从另一个函数调用它。这就是它失败的地方。这是不可能的,因为你期待的是你没有提供的论点!为什么要调用另一个函数?您可以在grabData函数中直接执行操作。是否发送任何操作?
返回只会将其发送回。withSuccessHandler
。如果您想将数据发送到另一个函数,那么只需将'anotherfunction(values)`添加到grabData()
function.Ok--那么如何在grabData()函数中返回所需的值,以便能够从另一个函数调用它?另一个函数在哪里客户端或服务器
grabData()和需要调用它的函数都是服务器端的。是否发送任何数据?返回
只会将其发送回。withSuccessHandler
。如果您想将数据发送到另一个函数,那么只需将'anotherfunction(values)`添加到grabData()
function.Ok--那么如何在grabData()函数中返回所需的值,以便能够从另一个函数调用它?另一个函数在哪里Client或Server
grabData()和需要调用它的函数都是服务器端的。