首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将HTML表单数据传递给应用程序脚本变量?

如何将HTML表单数据传递给应用程序脚本变量?
EN

Stack Overflow用户
提问于 2014-12-23 20:45:06
回答 2查看 3K关注 0票数 1

我很难将变量分配给我在HTML表单中收集的数据,以便在Apps脚本中使用。我的当前代码从HTML中收集值,并将数据追加到Google工作表中的一行。我还想做的是将每个表单值赋值给一个变量,这样我就可以发送自动电子邮件等等。

目前为止我所知道的..。

HTML和脚本工作,它从表单中收集值并将它们发送给code.gs。

函数addData在传递值时按预期启动。

表单数据被附加到Google工作表中。

Code.gs记录器“确认接收到的数据”和“接收到的数据”都记录传输的值。

当试图分配var columnA读取:执行失败: TypeError:无法从未定义的属性"0“读取属性时,我会得到一个执行错误。

下面是来自HTML和gs文件的日志以及我正在努力工作的Code.gs脚本.

谢谢你提前..。

console.log:

"20141223“、"CraneJe960303”、“杰夫”、“鹤”、"1231231234“、"jkhj@jkhjk.com”、“123号任何St,AR 11111”、"11111“、"19960303”、“11-完成初中”、“16-获得学士学位”、“L-领导力”、37.*125、-85.*217、22

Code.js Logger.log:

Logger.log([收到的数据: 20141223,CraneJe960303,杰夫,克兰,1231231234,jkhj@jkhjk.com,123 Any St,AR 11111,111,1991 60303,11-完成初中,16-获得学士学位,L-领导力,37.*125,-85.**217,22,[])

代码语言:javascript
运行
复制
function addData(data) {
  var ss = SpreadsheetApp.openById('1g5N1******************doOnE').getSheetByName('Sheet1');
  ss.appendRow(data);
  Logger.log('Confirm received data: ' + data);

  Logger.log('Received data: ' + data);  
var columnA = data.values[0];
  Logger.log('Start data value: ' + columnA);
var columnB = data.values[1];
var etc....
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-23 21:18:45

变量data看起来像是一个数组。通过在数据末尾加上一个点运算符和单词“value”,您将尝试在名为" data“的数组上调用一个方法。但是,数组名称"values“没有JavaScript方法。有一个.valueOf方法。

方法:

  • 连接两个或多个数组,并返回连接数组的副本
  • indexOf()搜索数组中的元素并返回其位置
  • 联接()将数组的所有元素连接到一个字符串中
  • lastIndexOf()搜索数组中的元素,从末尾开始,并返回其位置
  • pop()移除数组的最后一个元素,并返回该元素
  • push()将新元素添加到数组的末尾,并返回新长度
  • 反向()反转数组中元素的顺序
  • shift()移除数组的第一个元素,并返回该元素
  • slice()选择数组的一部分,并返回新数组
  • 排序()对数组的元素进行排序
  • splice()从数组中添加/删除元素
  • toString()将数组转换为字符串,并返回结果
  • unshift()将新元素添加到数组的开头,并返回新长度
  • valueOf()返回数组的原语值

属性

  • 构造函数返回创建Array对象原型的函数
  • 长度设置或返回数组中的元素数。
  • prototype允许您向Array对象添加属性和方法

如果希望在名为data的数组中索引第一个值,请使用:

代码语言:javascript
运行
复制
data[0]

换言之:

代码语言:javascript
运行
复制
var columnA = data[0];

如果它不是数组,而是字符串,则可能需要将其转换为数组。

票数 1
EN

Stack Overflow用户

发布于 2014-12-23 21:11:32

您不能读取像data.values这样的值。无论何时将表单值传递给GAS,函数参数都不具有类似于'values'的属性。这些'data'参数将充当json数据。您可以通过您在表单中给定的参数名称(即<input type='text' name='user' value=''> )来访问它。因此,如果将此值传递给GAS,则可以像data['user']一样访问该值。

或者你也可以按下面的方式访问它,

代码语言:javascript
运行
复制
var array = [];
for(var i in data) {  // data is a function parameter you have used in your GAS function, addData(data)
  arr.push(data[i]);
}

这样做之后,您可以使用这个数组array[]来分配列,即

代码语言:javascript
运行
复制
var columnA = arr[0];
Logger.log('Start data value: ' + columnA);
var columnB = arr[1];
...
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27627734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档