#google-apps-script #google-sites #google-forms
#google-apps-script #google-сайты #google-forms
Вопрос:
У меня есть форма, которую я хочу динамически изменять, я прочитал документы, но, похоже, не могу найти какого-либо окончательного ответа. Могу ли я заставить мою форму удалять варианты из выпадающих списков, потому что они использовали переключатель # 2 для 3-го вопроса? Могу ли я отформатировать текст из вопроса 1 и использовать его для предварительного заполнения вопроса 6 тем же ответом (по умолчанию он должен быть изменяемым)?
В принципе, мне нужно использовать код, чтобы определить, был ли адрес написан короткими формами (st, rd, cres, ct), а также удлинить и заглавными буквами их (улица, дорога). Я даже не знаю, возможно ли это. Если это возможно, кто-нибудь может предоставить пример кода или указать мне нужные справочные документы, это было бы оценено. Если нет, то выполнимо ли это на веб-сервере, если некоторые из моих вариантов множественного выбора необходимо считывать из электронной таблицы Google? Могу ли я сделать это через сайты Google?
Ответ №1:
Вы смотрели на Form
класс сервисов Google Apps?
В нем говорится:
Формы могут быть доступны или созданы из FormApp.
Например, вы можете использовать:
addTextItem()
или:
createChoice(value)
// Open a form by ID and add a new multiple choice item.
var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
var item = form.addMultipleChoiceItem();
item.setTitle('Do you prefer cats or dogs?')
.setChoices([
item.createChoice('Cats'),
item.createChoice('Dogs')
])
.showOtherOption(true);
Вы не хотите открывать новую форму, а используете открытую в данный момент.
/**
* Adds a custom menu to the active form, containing a single menu item for
* invoking checkResponses() specified below.
*/
function onOpen() {
FormApp.getUi()
.createMenu('My Menu')
.addItem('Check responses', 'checkResponses')
.addToUi();
}
Проверить текущие ответы?
/**
* Gets the list of responses and checks the average rating from the form
* created in createForm() above.
*/
function checkResponses() {
var form = FormApp.getActiveForm();
var responses = form.getResponses();
var score = 0;
for (var i = 0; i < responses.length; i ) {
var itemResponses = responses[i].getItemResponses();
for (var j = 0; j < itemResponses.length; j ) {
var itemResponse = itemResponses[j];
if (itemResponse.getItem().getType() == FormApp.ItemType.SCALE) {
score = itemResponse.getResponse();
}
}
var average = score / responses.length;
FormApp.getUi().alert('The score is ' average);
}
}
Ответ №2:
Вы могли бы использовать HTML-сервис Apps Script; написать HTML для создания пользовательской формы; написать код JavaScript для выполнения того, что вы хотите; затем добавить скрипт Apps на сайт Google. Или просто запустите HTML-сервис Apps Script как собственный веб-сайт. Но для этого параметра требуется, чтобы вы могли писать HTML и JavaScript. То, что вы хотите сделать, возможно.
Что касается создания пользовательской формы, проверки введенных пользователем данных и их изменения, это можно сделать в HTML-сервисе Apps Script. Затем вам нужно где-то сохранить данные. Google Forms создан для того, чтобы быть удобным для людей, которые не разбираются в программировании.
Похоже, вы просто ищете общую информацию о том, что возможно и что невозможно с различными продуктами, чтобы вы могли сделать выбор.
Чтобы ознакомиться с сервисом HTML, перейдите по следующей ссылке в качестве отправной точки:
Комментарии:
1. У меня есть опыт работы с HTML, js и CSS, я действительно надеялся на ответ, например, вы могли бы использовать getLiveResponses (e); и создать новый вопрос или что-то в этом роде… похоже, мне придется сделать это сложным способом: ( Хотя спасибо за помощь.