Предварительно заполните Google Forms текущей датой, изменив строку URL-адреса p-refill

1

Привет, у меня есть много способов узнать, как заполнить форму google с текущей датой в поле ввода даты.
Лучшее, что я придумал, это создать форму для предварительной заливки и использовать URL-адрес формы предпрограммы google и динамически изменить строку url, чтобы вставить текущую дату в качестве одного из аргументов. Я попытался создать страницу (скрипт приложения Google) со ссылкой на ссылку, которую я пытаюсь установить ссылку href для новой строки, содержащей текущий аргумент даты, но не имеет успеха. У меня уже есть функция (в коде.gs), которая принимает URL-форму google и правильно ее обрабатывает, чтобы ввести текущую дату в строку url в качестве одного из аргументов. Но установка этой новой строки url в ссылке href не работает.

Можете ли вы посоветовать (примеры будут замечательные) по этому или более простому способу предварительной заполнению текущей даты в форме Google. Самое ценное.

/* NOTE!!! Make a copy of this file - Choose "File" "Make a copy..."
 * Then publish this as a Web App - 
 * To Publish Choose the menu item "Publish" then "Deploy as Web App"
 * to see the Web App click the link named - "Test web app for your latest code"
 *
 */

var EXAMPLE_OF_GLOBAL_VARIABLE;//Use all capital letters so that you know it is a global
var n3;
function doGet() {
var template = HtmlService.createTemplateFromFile('Index');


// Build and return HTML in IFRAME sandbox mode.
return template.evaluate()
  .setTitle('Web App Window Title')
 .setSandboxMode(HtmlService.SandboxMode.IFRAME);
  };

  //Attribute - This code is modified from the Google Help for a web app
    //Help - Welcome Screen - Web App
 function getFolderContents() {
 var contents,file,files,folderId,numFiles,topFolder;

 folderId = 'root'; //Set this as the default for an example
 topFolder;
 contents = {
  children: []
  };

 if (folderId == 'root') {
topFolder = DriveApp.getRootFolder();
} else {
// May throw exception if the folderId is invalid or app
// doesn't have permission to access.
topFolder = DriveApp.getFolderById(folderId);
}
contents.rootName = topFolder.getName() + '/';

 files = topFolder.getFiles();
 numFiles = 0;

while (files.hasNext() && numFiles < 20) {
file = files.next();
contents.children.push(file.getName());
numFiles++;
};

return contents; 
 };
function getnowx() {
var today = new Date();
 var dd = today.getDate();
 var mm = today.getMonth()+1; //January is 0!
 var yyyy = today.getFullYear();

if(dd<10) {
      dd = '0'+dd
      } ;
    if(mm<10) {
      mm = '0'+mm
      }; 
   today = yyyy + '-' + mm + '-' + dd;
  var n ='https://docs.google.com/forms/d/e/1FAIpQLSd5By6kDoO_T4WZWk5VjKs6WD5RVuC_06RX7jDv19jS-KR8sg/viewform?usp=pp_url&entry.1374707830=xxxx-xx-xx&entry.406706983&entry.1232084117&entry.769389513&entry.104847992';
     var n1 = n.replace("xxxx-xx-xx",today);  
      return n1;
       };

мой раздел javascript

 <script>
     function updateDisplay(contents) {
     var headingText = "Displaying contents for " + contents.rootName + " 
    folder:";
     document.getElementById('main-heading').textContent = headingText;
     for (var i = 0; i < contents.children.length; i++) {
     var name = contents.children[i];
  document.getElementById('results').insertAdjacentHTML('beforeend', '<div>' 
  + name + '</div>');

   }

  function updateDisplay2(n5) {

   var linkButton = document.getElementById("link-button");
   linkButton.setAttribute('href', n5); 
   document.getElementById('link-button').textContent = linkText;
   }

  window.getTheData = function() {
  google.script.run
   .withSuccessHandler(updateDisplay)
  .getFolderContents();

    };

  window.getnowx2 = function() {
  google.script.run
  .withSuccessHandler(updateDisplay2)
  .getnowx();
  }
   </script>
  • 0
    Можете ли вы предоставить url а также снимок code.gs
  • 0
    Я скопировал часть онлайн-кода и изменил его.
Показать ещё 16 комментариев
Теги:
date
forms
google-apps-script

2 ответа

0

Per Chance наткнулся на некоторый код в обмене стеками, и он сработал. Очень просто, просто не знал, как это сделать. Моя функция getnow использует URL-адрес предварительной заливки и строчную манипуляцию, чтобы вставить текущую дату, чтобы я мог автоматически получить форму Google с текущей датой.

function doGet() {
    var url = getnowx();
    return HtmlService.createHtmlOutput(
   "<a href='" + url + "?page=1'>Mylabel</a> <br><a href='" + url + "?
    page=1'>MyLABEL2</a>");

    };


function getnowx() {
   var today = new Date();
     var dd = today.getDate();
     var mm = today.getMonth()+1; //January is 0!
     var yyyy = today.getFullYear();

    if(dd<10) {
          dd = '0'+dd
          } ;
        if(mm<10) {
          mm = '0'+mm
          }; 
       today = yyyy + '-' + mm + '-' + dd;
      var n = 'https://docs.google.com/forms/d/e/1FAIpQLSd5BykDoO_T4WZWk5VjKs6WD5xxC_06RX7jDv19jS-KvR8sg/viewform?usp=pp_url&entry.1374707830=xxxx-xx-xx&entry.406706983&entry.1232084117&entry.769389513&entry.104847992';
     var n1 = n.replace("xxxx-xx-xx",today);  
    return n1;
   };
0

Можете ли вы попробовать изменить его

window.getnowx2 = function() {
  google.script.run
  .withSuccessHandler(updateDisplay2)
  .getnowx();
  }

в

  google.script.run
  .withSuccessHandler(updateDisplay2)
  .getnowx();

Причина в том, что в первом утверждении вы назначаете функцию переменной window.getnowx2 но не вызываете ее. Во втором утверждении вы на самом деле называете это. Извините, я не слишком уверен в этом, но кто-то более осведомленный будет решать это, если это не сработает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню