我发现这个方法来自html [link] Add basic data to a Google Spreadsheet via a simple HTML Form的商店数据,但是这种方法不是按顺序发送数据。我想按顺序发送数据,只发送一些变量 我有这个html文件
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<form id="form" method="get" action="https://script.google.com/macros/s/AKfycbzhVAFaP7tFTbSzgeO0y9rUBl6ptVRCbqpS9wi12yFmoboYjw/exec" accept-charset="UTF-8">
Name and age!
<input type=text name=name id=name>
<input type="text" name="direccion" placeholder="Direccion completa">
<input type=number name=age id=age>
<input type="Apellido" name="Apellido" id="Apellido">
<input type=submit onclick=google.script.run.addProduct()>
</form>
</body>
</html>
我在电子表格中有这个code.gs
function doGet(e){
var vals=[];
vals.push(new Date());
for(var i in e.parameter){
vals.push(e.parameter[i]);
}
SpreadsheetApp.openById("1KYR7SefLy5P-JP3LqdKsRRd_bkwTHFGFQQ0rnD3JfUM").appendRow(vals);
return ContentService.createTextOutput("Información enviada correctamente");
}
有一些方法可以按顺序发送变量吗?
答案 0 :(得分:0)
从表单标记中的操作提交表单时,表单元素将提交到URL。表单元素是一个对象。对象将更改元素的顺序。数组保证数据的顺序,对象不保证对象中数据的顺序。
但是,您可以通过它的键名来引用对象中的每个元素,在这种情况下,它将是name属性。
function doGet(e){
var vals=[];
vals.push(new Date());
vals.push(e.parameter.name);
vals.push(e.parameter.direccion);
vals.push(e.parameter.age);
vals.push(e.parameter.Apellido);
Logger.log('vals: ' + vals);
SpreadsheetApp.openById("").appendRow(vals);
//return ContentService.createTextOutput("");
};
保证订单的唯一方法是在发送数据之前设置顺序,或者在检索数据后设置顺序。上面的示例设置处理数据时的顺序。
发送一些输入值的唯一方法是在发送之前处理表单。显然,您可以省略服务器端的某些值。如果您要在表单标记中使用策略,那么您就不需要:
onclick=google.script.run.addProduct()
在“提交”按钮中。