这是我第一次发帖,如果我留下任何关键细节,请耐心等待。
无论如何,要总结一下这个问题:我一直试图让一个脚本在Google Script制作者上工作,以格式化连接到表单的电子表格,直接进入我的电子邮件。
基本上用户表单 - > 电子表格 - > 我的电子邮件
问题很标准:
但是,我想要使用的一个问题是“这个问题的优先级是什么?”高或低。我有多种选择格式,所以它是一个简单的选择。
我想要的Psuedocode:
if (priority = low) put #priority low onto the email
很简单,但我似乎无法让它工作,这是我的代码:
function sendFormByEmail(e)
{
// Remember to replace XYZ with your own email address
var email = "email";
var subject = "Help Desk Form Submitted";
var s = SpreadsheetApp.getActiveSheet();
var headers = s.getRange(1,1,1,s.getLastColumn()).getValues()[0];
var message = "";
var priority = "";
if(message.indexOf("What is the priority of this problem? = Low")){
priority += "#priority low";
}
else
priority == "GFHHFFHAHFH ";
for(var i in headers){
message += headers[i] + ' = \t \t'+ e.namedValues[headers[i]].toString() + "\n\n"; }
if (message.indexOf("What is the priority of this problem? = Low"))
message += "This is a test";
else
message += "This is not a test";
MailApp.sendEmail(email, subject, message);
}
答案 0 :(得分:0)
让我们看一下if(message.indexOf()...
的第一个实例。这有一些问题:
前面几行,message
被设置为空字符串...所以你不会在其中找到“优先级”字符串。
if
语句将indexOf()
作为布尔值返回。但是,当找不到项目时,来自.indexOf()
的返回码为-1
,这是“真实的”。如果找到字符串IS,并且该字符串位于搜索主题的开头,则返回将为0
,即“false-ish”。如果在任何其他位置找到它,则该值将为“> 0”,也是“true-ish”。
在else
中,有一个错字。如果您愿意,则比较==
应为作业=
或+=
。
查看周围的代码,这件作品看起来就像以前的版本一样,可以删除。
现在看第二个实例。
现在应填充message
。但是,比较仍然使用.indexOf()
的错误布尔解释。
搜索字符串包含一批空格......但是之前通过响应循环的代码使用制表符将“标题”与“值”分开,因此搜索将始终返回“-1”(这将被解释为true
)。
还有其他一些整洁的物品。你可能需要:
function sendFormByEmail(e)
{
Logger.log(JSON.stringify(e));
var email = Session.getEffectiveUser().getEmail();
var subject = "Help Desk Form Submitted";
var message = "";
var s = e.range.getSheet(); // Sheet that received form response
var headers = s.getDataRange().getValues()[0];
for (var question in headers) {
message += headers[question] + ' = \t\t' + e.values[question] + '\n\n';
}
// Add text relative to the priority of the reported issue.
if (e.namedValues["What is the priority of this problem?"].toString() === "Low")
message += "This is a test";
else
message += "This is not a test";
Logger.log(message);
MailApp.sendEmail(email, subject, message);
}
PS:你可以看出为什么保持形式问题简短,比如“优先级”,并将解释性句子保留为帮助文本!