我已经阅读了数百个论坛问题,但找不到解决方案。
我想将我的表单数据(AfterSave)发送到 Google 表格
我在 Google Sheet 上创建了一个类似这样的 Web 应用程序
function doGet(e){
return handleResponse(e);
}
var SHEET_NAME = "Sheet1";
var SCRIPT_PROP = PropertiesService.getScriptProperties();
function doPost(e){
return handleResponse(e);
}
function handleResponse(e) {
var lock = LockService.getPublicLock();
lock.waitLock(30000);
try {
var doc = SpreadsheetApp.openById(SCRIPT_PROP.getProperty("1-L-rFuTM4oWbzcoLCfAoTGvvwC0iSiCdKtZRvl3RdRI"));
var sheet = doc.getSheetByName(SHEET_NAME);
var headRow = e.parameter.header_row || 1;
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
var nextRow = sheet.getLastRow()+1; // get next row
var row = [];
for (i in headers){
if (headers[i] == "Timestamp"){
row.push(new Date());
} else {
row.push(e.parameter[headers[i]]);
}
}
sheet.getRange(nextRow, 1, 1, row.length).setValues([row]);
return ContentService
.createTextOutput(JSON.stringify({"result":"success", "row": nextRow}))
.setMimeType(ContentService.MimeType.JSON);
} catch(e){
return ContentService
.createTextOutput(JSON.stringify({"result":"error", "error": e}))
.setMimeType(ContentService.MimeType.JSON);
} finally {
lock.releaseLock();
}
}
function setup() {
var doc = SpreadsheetApp.openById('1-L-rFuTM4oWbzcoLCfAoTGvvwC0iSiCdKtZRvl3RdRI');
SCRIPT_PROP.setProperty("key", doc.getId());
}
然后我继续在我的 Wix 站点上创建了一个后端 .JSW,看起来像这样
//sendSheets.jsw
import {fetch} from 'wix-fetch';
export function sendToSheets(data) {
fetch("https://script.google.com/macros/s/AKfycbykq05IP_ABzQfLa9ura_pISv-zwUHZdeGb2F9681ffyzubXi9I/exec", {
method: 'post',
body: data
});
}
最后在我的页面代码上看起来像这样
import {sendToSheets} from 'backend/sendSheets.jsw';
$w.onReady(function () {
$w("#dataset1").onAfterSave(sendToSheets);
});
export function sendFormData() {
var data = {
"input1":$w("#input1").value,
"input2":$w("#input2").value,
"dropdown1":$w("#dropdown1").value,
"dropdown2":$w("#dropdown2").value
};
sendToSheets(data);
}
最后,我在 Google 脚本编辑器上创建的脚本显示我的脚本总共运行了 7 次,这是我提交表单的确切次数,但我的工作表上没有发布任何内容
我来自营销背景,我只知道一点编码(我正在努力学习),但我真的不明白该怎么做。