У меня есть требование: мне нужно получить ответ на 2 вопроса в форме Google и отправить подробную информацию по электронной почте.
Вопрос 1 – это обязательное поле и текстовое поле, поэтому проблем нет.
Вопрос 2 — это необязательное поле (не обязательное), в которое можно загружать такие документы, как изображения, PDF, Word Doc или Excel. Текста нет.
Если при ответе на форму я загружаю документ, я получаю электронное письмо с загруженным документом в виде ссылки на диск. Но если я не загружаю какой-либо документ, мой приведенный ниже код не работает с ошибкой ниже: когда ни один документ не загружен, как заменить этот документ каким-либо сообщением типа «документ не загружен»
Ошибка типа: невозможно прочитать свойства неопределенного значения (чтение «длины»)
Кроме того, я хочу знать, если документ не загружен, как я могу заменить ссылку в сообщении электронной почты в формате HTML на что-то вроде «Нет ответа»?
let htmlMsg = thisAnswer + "https://drive.google.com/file/d/" + thisAnswer2
Вот мой текущий код:
function EmailForm() {
var allQuestions,
i,
itemType,
L,
thisAnswer,
Question1,
Question2,
itemType2,
thisAnswer2,
number_of_submissions;
number_of_submissions = FormApp.getActiveForm().getResponses().length;
allQuestions = FormApp.getActiveForm().getResponses()[number_of_submissions - 1].getItemResponses();
L = allQuestions.length;
thisSubmissionsAnswers = [];
Question1 = allQuestions[0];
itemType = Question1.getItem().getType();
if (itemType === FormApp.ItemType.PAGE_BREAK) {
};
thisAnswer = Question1.getResponse().toString();//Get the answer
Logger.log(thisAnswer);
Question2 = allQuestions[2];//Get this question
if (Question2 === "") {
Question2 = "None"
}
else {
itemType2 = Question2.getItem().getType();
if (itemType2 === FormApp.ItemType.PAGE_BREAK) {
};
thisAnswer2 = Question2.getResponse().toString();//Get the answer
Logger.log(thisAnswer2);
let htmlMsg = thisAnswer + "https://drive.google.com/file/d/" + thisAnswer2
if (thisAnswer === 'Yes') {
GmailApp.sendEmail('[email protected]', "Incident Reported", "", { htmlBody: htmlMsg });
}
};`
Я новичок в AppScript, поэтому, пожалуйста, помогите.
Я почти уверен, что StackOverflow не имеет никакого отношения к помощи с домашними заданиями. Но не нужно слишком многого, чтобы проверить, задавал ли кто-нибудь уже (и получил ли на него ответ) тот же вопрос.
@Tedinoz Пост, на который вы ссылаетесь, работает хорошо, если значение представляет собой просто строку, но для меня пользователи загружают файл для ответа на вопрос 2, поэтому он не может распознать ноль, когда пользователи не загружают какой-либо документ. на данный момент происходит сбой, когда пользователи не загружают какой-либо документ. Есть ли способ это исправить. itemType2 = Вопрос2.getItem().getType();
Необходимо ли привязывать сценарий приложения к форме?
я написал сценарий, привязанный к форме, потому что всякий раз, когда появляется новое электронное письмо, необходимо отправлять





У вас есть форма Google, и вы хотите отправить электронное письмо при отправке формы.
Существует два типа триггера onFormSubmit.
Бывают ситуации, когда один тип предпочтительнее другого. В этом случае, когда требуются определенные значения формы, сценарий, привязанный к листу, является лучшим вариантом из-за согласованности результатов:
Сценарий ОП был написан как сценарий, «привязанный к форме».
Следующий ответ написан в виде сценария, привязанного к связанному Google Sheet и запускаемого onFormSubmit.
function sendEmail(e) {
Logger.log(JSON.stringify(e))
var values = e.values
Logger.log(values)
Logger.log("number of questions = "+values.length)
var timeStamp = values[0]
var q1 = values[1]
var q2 = values[2]
Logger.log("timestamp = "+timeStamp+", question#1 = "+q1+", question#2 = "+q2)
if (q2 === ""){
// the question wasn't answered, so set q2 = "Not Answered"
q2 = "Not Answered"
Logger.log("q2 wasn't answered. Value = "+q2)
}
else{
// q2 was answered
Logger.log("q2 was answered; the value = "+q2)
}
}
ПРИМЕР – ответы формы
ПРИМЕР — Журнал казней
Отвечает ли это на ваш вопрос? Как заменить пустой/пустой ответ в форме Google из скрипта Apps