我查看了各种先前发布的关于使用JavaScript将HTML表单数据提交到Google电子表格的条目。但是,自从之前的帖子以及<input>
entries work的方式以来,Google电子表格发生了很大变化,因此我不确定如何让我的表单写入Google电子表格。我基本上遵循了这个URL的解决方案。我的代码如下。有人有关于如何解决的建议吗?问题在于缺少输入字段。我的表单只有一个id = firstname和id = lastname,所以非常简单地开始简单。提前感谢您的光临。
<html>
<head>
<script>
$('#emailForm').one('submit',function(){
var inputField = encodeURIComponent($('#emailForm').val());
var baseURL = 'https://docs.google.com/a/google.com/forms/d/1RZYnGjYAMjl6LMXLdsWZgb9S3NqXZSO000tD2eObhLc/formResponse';
var submitRef = '&submit=Submit';
var submitURL = (baseURL + emailAddress + submitRef);
$(this)[0].action=submitURL;
$('#email').addClass('active').val('Thank You!');
setTimeout(function(){
$('#form-container').hide();
$('#update-form').animate({'width': '0px'},300,function(){
$('#get-updates-link').hide();
$('#email-submit').addClass('active').val('Thank You!');
});
},1000);
</script>
</head>
<body>
<form id="emailForm" action="https://docs.google.com/a/google.com/forms/d/1RZYnGjYAMjl6LMXLdsWZgb9S3NqXZSO000tD2eObhLc/formResponse">
<input id="firstname" type="text" placeholder="enter firstname" name="firstname">
<input id="lastname" type="text" placeholder="enter lastname" name="lastname">
<button id="email-submit" type="submit">Submit</button>
</form>
</body>
</html>
答案 0 :(得分:1)
你这样做的方式很有趣,但有更好的方法。要使您当前的策略有效,您需要创建一个与您的数据相匹配的Google表单。你不需要这样做。最好创建一个独立的应用程序脚本Web应用程序,其中包含doPost(e)
功能。 doPost(e)
函数可以捕获HTTP请求有效负载,并在调用Apps脚本Web应用程序URL时运行doPost(e)
函数。 e
参数将从POST请求中捕获有效内容数据。
你可以看看像这样的stackoverflow问题:
答案 1 :(得分:0)
以下是我在Google Apps脚本中创建简单表单的方法。
在code.gs
function doGet(e) {
return HtmlService
.createTemplateFromFile('Index')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.NATIVE)
}
function writeForm(form) {
var customerName = form.myName;
var paidPrice = form.myMoney;
var ss = SpreadsheetApp.openById('1XPhhCko*******9mHvgNzFZ-mG8bWyFiBjn3B_B1bc');
var sheet = ss.getSheetByName("customers");
var newRow = sheet.getLastRow()+1;
var range = sheet.getRange(newRow, 1);
range.setValue(customerName);
range = sheet.getRange(newRow, 2);
range.setValue(paidPrice);
}
请注意,HTML以NATIVE模式呈现。否则提交按钮将无效。
现在这里是Index.html表格:
<body>
<h1> This is a customer form </h1>
<form id="customerForm">
Customer name:
<input name="myName" type="text" placeholder="Example: Bob">
<br>
Money spent:
<input name="myMoney" type="number" placeholder="0.00">
<br>
<input type="submit" onclick="google.script.run.writeForm(this.parentNode)">
HTML只是一个例子,原谅糟糕的设计和br标签。 这样做,在提交时,是在A1上保存客户名称和在A2上支付的价格(除非该行有数据,因此它将在新行上写入)