Google表单的附件-常量-永久保存值

问题描述 投票:1回答:1

我正在创建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.  

}
javascript html google-apps-script google-form appscript
1个回答
1
投票

现在效果很好。下面是我从表单保存变量的函数。我在表单中添加了一个额外的输入,因此这就是这里的邮件变量的原因。

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);
}
© www.soinside.com 2019 - 2024. All rights reserved.