Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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函数(谷歌应用程序脚本)_Javascript_Google Apps Script - Fatal编程技术网

从下拉列表传递数据=>;到javascript函数(谷歌应用程序脚本)

从下拉列表传递数据=>;到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;

希望我已经包含了足够多的代码,不必全部发布

我有一个调用displayDropdown()的主函数,它调用一个HTMLService并显示一个带有下拉菜单和文本框的模式:
.
这是存储数据的(压缩)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()和需要调用它的函数都是服务器端的。