@Eager
ITSM во плоти.

Как очистить гугл форму после заполнения данными и сохранения?

Есть гугл форма, к которой привязан скрипт, приведенный в конце вопроса.
https://script.google.com/macros/s/AKfycbz4aqE_Os_...

По задумке автора, пользователи, заходя на форму, заполняют ее и жмут кнопку "отправить данные"!
После нажатия кнопки отправить происходит сохранение данных формы в гугл-таблицу, а в экране браузера остается форма с данными!!! Клиенты как правило невнимательные и не будут читать мелкий текст о том, что данные были внесены и будут жать дальше кнопку "отправить данные", и будут жать дальше кнопку "отправить данные", и будут жать дальше кнопку "отправить данные" - пока не надоест или не прочитают текст под кнопкой...

ВНИМАНИЕ ВОПРОС: Что и как добавить в скрипте, чтобы после сохранения данных в таблицу либо открывалась вновь ЧИСТАЯ/ПУСТАЯ форма, либо открывалось какое-то pop-up окно или иной механизм, защищающий от повторных (дублирующих) сохранений данных.

PS: А еще в догонку вопрос, почему эта форма нормально не работает на iOS устройствах (проблемы со скролингом) и как это побороть. Проблема в том, что после добавления на форме файла, смещается форма и дальше навигация по форме невозможна. На Андроидах все работает чудесно.

// скрипт формы
//глобальные переменные
var FOLDER_ID = '0B09VHKG_phFBQ1RNeElBRXdiTEE';
var SHEET_ID = '1_JLyKtHiX64rYxG9xpgPTs2o7QCDQT4RESj4KrAcN0s';

//вместо инициализации
function onInstall(){}

//сервеер
function doGet(e){
//возвращает страницу
return HtmlService.createHtmlOutputFromFile('index').addMetaTag('viewport', 'width=device-width, initial-scale=1').setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

//обработчик вызова сервера
function uploadFiles(form) {

//все в try, иначе придется обрабатывать исключения на клиенте
try{
//берем нашу папку
var folder = DriveApp.getFolderById(FOLDER_ID).createFolder(blob);
// folder.setName('' + form['Контрагент'] + ' ' + form['Населенный пункт'] + ', ' + form['Улица'] + ', ' + form['Номер дома'] + ' (' + [new Date()] + ' (');
folder.setName('' + form['Контрагент'] + ': ' + form['Населенный пункт'] + ', ' + form['Улица'] + ', ' + form['Номер дома'] + ' (' + Utilities.formatDate(new Date(), "GMT+3:00", "dd-MM-YYYY hh:mm") + ')');
folder.setDescription('Uploaded by ' + form['name'] + ' ' + form['comment']);
//берем контент file
var blob = form['file'];
var blob1 = form['file1'];
var blob2 = form['file2'];
//создаем файл на Диске
var file = folder.createFile(blob);
file.setName('' + form['Контрагент'] + ' ' + form['Населенный пункт'] + ' ' + form['Улица'] + ' ' + form['Номер дома'] + ' ' + form['Тип ТТ'] + ' ' + 'Витрина');
file.setDescription('Uploaded by ' + form['name'] + ' ' + form['comment']);
var file1 = folder.createFile(blob1);
file1.setName('' + form['Контрагент'] + ' ' + form['Населенный пункт'] + ' ' + form['Улица'] + ' ' + form['Номер дома'] + ' ' + form['Тип ТТ'] + ' ' + 'Лицензия');
file1.setDescription('Uploaded by ' + form['name'] + ' ' + form['comment']);
var file2 = folder.createFile(blob2);
file2.setName('' + form['Контрагент'] + ' ' + form['Населенный пункт'] + ' ' + form['Улица'] + ' ' + form['Номер дома'] + ' ' + form['Тип ТТ'] + ' ' + 'Фасад');
file2.setDescription('Uploaded by ' + form['name'] + ' ' + form['comment']);
//делаем запись в Таблице в первом найденном листе (Необходимо переписать для большей логики)
SpreadsheetApp.openById(SHEET_ID).getSheets()[0].appendRow([new Date(), form['ФИО'], form['Служба'], form['Отдел'], form['Должность'], form['Контрагент'], form['Областной центр'], form['Населенный пункт'], form['Улица'], form['Номер дома'], form['Тип ТТ'], form['Название ТТ'], form['Комментарий'], folder.getUrl()]);
//ответ сервера
return 'Информация принята. Для загрузки новых данных обновите страницу браузера';

}catch(e){
//обработаем любую ошибку как ответ сервера "ОК" 200
return e.toString();
}
}
  • Вопрос задан
  • 3157 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы