我有一个Google Form插件可以编写。创建表单的用户必须能够在边栏中指出一个文件,该文件是一个示例,用于在文件和文件所在的Google云端硬盘中复制和上传答案和位置。我有一个问题,因为我不知道如何使这两个变量在服务器上永久保存?
[我的HTML-右侧的边栏,当此表单的所有者正在创建问题和答案类型时
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<div>
<form id="myForm" onsubmit="handleFormSubmit(this)">
Link to your document:
<br>
<input type="text" name="document"><br><br>
Link to your folder in your Google Drive:
<br>
<input type="text" name="drive"><br><br>
<input type="submit" value="Prześlij">
</form>
</div>
<br>
<script>
function handleFormSubmit(formObject) {
google.script.run.withSuccessHandler(close).processForm(formObject);
}
function close() {
google.script.host.close();
}
</script>
</body>
</html>
My code.gs
function onOpen() {
FormApp.getUi()
.createMenu('Additional menu')
.addItem('Answers to file', 'showSidebar')
.addSeparator()
.addToUi();
}
function showSidebar() {
var html = HtmlService.createHtmlOutputFromFile('sidebar')
.setTitle('Save your form!')
.setWidth(300);
FormApp.getUi()
.showSidebar(html);
}
function processForm(formObject) {
var ui = FormApp.getUi();
var linkToDoc = formObject.document;
ui.alert ('Link do dokumentu to: '+linkToDoc);
var idOfDoc = linkToDoc.match(/[-\w]{25,}/);
ui.alert ('ID dokumentu: '+ idOfDoc);
var linkToDrive = formObject.drive;
ui.alert ('Link do folderu na Dysku Google: '+linkToDoc);
var idOfDrive = linkToDrive.match(/[-\w]{25,}/);
ui.alert ('ID folderu na Dysku Google: '+ idOfDrive);
}
function myFunction(e) { //Trigger that starts when the end user completes and sends the form.
How can I use here variables from proccessForm()? I mean idOfDoc and idOfDrive.
}
现在效果很好。下面是我从表单保存变量的函数。我在表单中添加了一个额外的输入,因此这就是这里的邮件变量的原因。
var scriptProperties = PropertiesService.getScriptProperties();
function processForm(formObject) {
var ui = FormApp.getUi();
var linkToDoc = formObject.document;
ui.alert ('Link to doc: '+linkToDoc);
var idOfDoc = linkToDoc.match(/[-\w]{25,}/);
ui.alert ('ID of doc: '+ idOfDoc);
var linkToDrive = formObject.drive;
ui.alert ('Link to drive: '+linkToDoc);
var idOfDrive = linkToDrive.match(/[-\w]{25,}/);
ui.alert ('ID of folder in Google Drive: '+ idOfDrive);
var mail = formObject.mail;
ui.alert('Your email: '+mail);
var myJSON = JSON.stringify(idOfDoc);
var myJSON2 = JSON.stringify(idOfDrive);
var myJSON3 = JSON.stringify(mail);
var myJSON4 = JSON.stringify(linkToDoc);
var myJSON5 = JSON.stringify(linkToDrive);
scriptProperties.setProperty('doc', myJSON);
scriptProperties.setProperty('drive', myJSON2);
scriptProperties.setProperty('mail', myJSON3);
scriptProperties.setProperty('linkdoc', myJSON4);
scriptProperties.setProperty('linkdrive', myJSON5);
}