Trying to create a script that on form submit sends an email to the submitter if they answered false

…衆ロ難τιáo~ 提交于 2021-02-05 11:31:23

问题


I'm looking on form submit to send an email to the submitter if they filled any of the questions as false, but the script is sending emails to any submitter who entered all true as well. I know the if script works with numbers as I used it in another project but when I changed the question to true false it seems to have broken the if statement. I also know the rest of the script works because it worked before I added the "if (certification == 'FALSE') {" line.

var EMAIL_SENT = 'EMAIL_SENT';
var FALSE = 'FALSE';

 
function sendEmails2() {

 
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;
  var numRows = 20;
  var dataRange = sheet.getRange(startRow, 1, numRows, 20);
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[4];
    var message = 'Test'
    var emailSent = row[9];
    var certification = row[5]
    if (certification == 'FALSE') {
    if (emailSent !== EMAIL_SENT) {
      var subject = 'Self-Certification Alert';
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 10).setValue(EMAIL_SENT);
      SpreadsheetApp.flush();  
    }
  }
}
}

回答1:


Please try amending to the following:

var EMAIL_SENT = 'EMAIL_SENT';
var FALSE = 'FALSE';

 
function sendEmails2() {

 
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;
  var numRows = 20;
  var dataRange = sheet.getRange(startRow, 1, numRows, 20);
  var data = dataRange.getValues();
  var error=0;
  
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var emailAddress = row[4];
    var message = 'Test'
    var emailSent = row[9];
    var certification = row[5]
    
       if (certification == 'FALSE') {
       error++; 
       }    
  }

        if (emailSent !== EMAIL_SENT && error >0) {
      var subject = 'Self-Certification Alert';
      MailApp.sendEmail(emailAddress, subject, message);
      sheet.getRange(startRow + i, 10).setValue(EMAIL_SENT);
      SpreadsheetApp.flush();  
       }

}



回答2:


I ended up changing it to the following code and got it to work.

enter code here
var EMAIL_SENT = 'EMAIL_SENT';
var TRUE = 'true';


function sendEmails2() {


 var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var numRows = 20;
var dataRange = sheet.getRange(startRow, 1, numRows, 20);
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[4];
var message = 'Test'
var emailSent = row[9];
var certification = row[5]
if (certification !== true) {
if (emailSent !== EMAIL_SENT) {
  var subject = 'Self-Certification Alert';
  MailApp.sendEmail(emailAddress, subject, message);
  sheet.getRange(startRow + i, 10).setValue(EMAIL_SENT);
  SpreadsheetApp.flush();  
  }
  }
}
}


来源:https://stackoverflow.com/questions/65378207/trying-to-create-a-script-that-on-form-submit-sends-an-email-to-the-submitter-if

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!