我很难将变量分配给我在HTML表单中收集的数据,以便在Apps脚本中使用。我当前的代码从HTML中收集值,并将数据附加到Google表格中的一行。我还想做的是将每个表单值分配给变量,以便我可以发送自动电子邮件等...
到目前为止我所知道的......
HTML和脚本有效,它从表单中收集值并将它们发送到code.gs
函数addData在传输值时按预期启动
表单数据会附加到Google表格
Code.gs记录器和#34;确认收到的数据"和"收到的数据"记录传输的值
尝试分配var columnA时出现执行错误:执行失败:TypeError:无法读取属性" 0"来自undefined。
以下是来自HTML和gs文件的日志以及我试图开始工作的Code.gs脚本......
非常感谢你提前...
的console.log:
[" 20141223"," CraneJe960303"," Jeff"," Crane"," 1231231234",& #34; jkhj@jkhjk.com"," 123 Any St Here,AR 11111"," 11111"," 19960303"," 11 - 完成大三学年" 16-获得学士学位"," L-Leadership",37。**** 125,-85。**** 217,22 ]
Code.js Logger.log:
Logger.log([收到数据:20141223,CraneJe960303,Jeff,Crane,1231231234,jkhj @ jkhjk.com,123 Any St Here,AR 11111,11111,19960303,11-完成大三,16年获得学士学位,L-Leadership,37。**** 125,-85。**** 217,22,[]])[0秒]
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....
答案 0 :(得分:1)
您无法读取data.values [0]等值。无论何时将表单值传递给GAS,函数参数都不具有'values'
之类的属性。那些'data'
参数将充当json数据。您可以通过表单中提供的参数名称访问它,即<input type='text' name='user' value=''>
。因此,如果将此值传递给GAS,则可以像data['user']
一样访问此值。
或者您也可以通过以下方式访问它,
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[]
来分配列,即
var columnA = arr[0];
Logger.log('Start data value: ' + columnA);
var columnB = arr[1];
...
...
答案 1 :(得分:1)
变量data
看起来像是一个数组。
通过设置点运算符和单词&#34;值&#34;在数据末尾,您尝试在名为&#34; data&#34;的数组上调用方法。但是对于数组名称没有JavaScript方法&#34;值&#34;。有.valueOf
方法。
如果要在名为data的数组中索引第一个值,请使用:
data[0]
换句话说:
var columnA = data[0];
如果它不是数组,而只是一个字符串,则可能需要将其转换为数组。