Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将Google表单响应(作为变量传递到数组)传递到HTML模板以实现自动电子邮件警报?_Javascript_Html_Google Forms_Html Templates - Fatal编程技术网

Javascript 如何将Google表单响应(作为变量传递到数组)传递到HTML模板以实现自动电子邮件警报?

Javascript 如何将Google表单响应(作为变量传递到数组)传递到HTML模板以实现自动电子邮件警报?,javascript,html,google-forms,html-templates,Javascript,Html,Google Forms,Html Templates,我的最终目标是根据表单用户级别(lvl)/优先级选择触发发送给客户端的自动电子邮件。级别3应在电子邮件模板中发送所选表格答案。(我假设我的2级条目也存在同样的问题,仅用于维护跟踪) 如果这些可能是重复的问题,我深表歉意(我几乎没有编码经验,主要是VBA),但我已经充分利用论坛了解了其中的大部分内容,并阅读了,不幸的是,我必须错过或阅读它,因为我在传递表单答案时遇到问题(由提交触发)以及计算e.range以获取要从HTML模板中选取的数组字符串 我在提交表单时出现以下错误 “引用错误:未定义返回数

我的最终目标是根据表单用户级别(lvl)/优先级选择触发发送给客户端的自动电子邮件。级别3应在电子邮件模板中发送所选表格答案。(我假设我的2级条目也存在同样的问题,仅用于维护跟踪)

如果这些可能是重复的问题,我深表歉意(我几乎没有编码经验,主要是VBA),但我已经充分利用论坛了解了其中的大部分内容,并阅读了,不幸的是,我必须错过或阅读它,因为我在传递表单答案时遇到问题(由提交触发)以及计算e.range以获取要从HTML模板中选取的数组字符串

我在提交表单时出现以下错误

“引用错误:未定义返回数据

评估时([未知文件]:10:70)

评估时([未知文件]:39:3) 在checkAlert(代码:34:29) 在onFormSubmit上提交(代码:4:3)”

这是我的密码:

代码.gs

function onFormSubmit(e) {
  Logger.log("[METHOD] onFormSubmit");
  
  checkAlert(e.range);
}

function checkAlert(range) {
  Logger.log("[METHOD] checkAlert");

  var values = range.getValues();
  
  var col = values[0];
  var lvl = col[8];
  
  // lvl 0 --> Do nothing
  
  if (lvl == "1" || "2") {
    
    var datetime = col[0]; // Timestamp
    var loc = col[1]; // Location
    var RAPID = col[2]; // Y/N needs attention
    var pumpspec = col[3]; 
    var pumpair = col[4]; 
    var counter = col[5]; 
    var comm = col[6]; // User comments
    var conc = col[7]; // User concerns
    
    var sup = "supemail@example.com"; // Field Manager, and Non-routine email
    
    var returnData = [datetime, loc, RAPID, pumpspec, pumpair, counter, comm, conc, lvl, sup]; 
    var html =  HtmlService.createTemplateFromFile('2template');
    html.data = returnData;
    
    var emailContent = html.evaluate().getContent(); //HTML Output 
    
    var sub = "MAINTENANCE ALERT"

    MailApp.sendEmail({
      to: sup,
      subject: sub,
      htmlBody: emailContent
    });   
  }
  
  if (lvl == "3") {
   
   var datetime = col[0]; // Timestamp
   var loc = col[1]; // Location
   var RAPID = col[2]; // YN needs attention
   var comm = col[6]; // User comments
   var conc = col[7]; // User concerns
   
   var client = "clientemail@example.com";
   var returnData = [datetime, loc, RAPID, comm, conc, client, lvl];  //For some reason causing getValues issues
   var html = HtmlService.createTemplateFromFile('3template');
  
   html.data = returnData ;
   var emailContent = html.evaluate().getContent();
  
   MailApp.sendEmail({
     to: client,
     subject: "ALERT! Daily Inspections - RED FLAG",
     htmlBody: emailContent
     });
  }
  
}
3template.html

        <!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
  
   <h3> A technician has noted an immediate concerning issues:</h3><hr /> \
   <p> \
   <h1 style='line-height:90%'>Priority level <?= returnData[6] ?> - Location: <?= returnData[1] ?> <br /> \
   <span style='font-size:60%'> <?= returnData[0] ?> </span></h1> \ 
   <p><hr /> \
   <p> \
   <strong>ISSUE:</strong><br /> \
   <? returnData[4] ?> \
   </p><p> \
   <strong>ADDITIONAL INFO:</strong><br /> \
   <? returnData[3] ?> \
   </p><p> \
   <strong>FIELD MANAGER CONTACT INFO:</strong> \
   (123) 800-1234, supemail@example.com \
   </p>
    
  </body>
  <!-- var returnData = [0 datetime, 1 loc, 2 RAPID, 3 comm, 4 conc, 5 client, 6 lvl] -->
</html

一位技术人员注意到一个直接相关的问题:
\ \ 优先级-位置:
\ \
\ \ 问题:
\ \

\ 其他信息:
\ \

\ 现场经理联系信息:\ (123) 800-1234, supemail@example.com \


在谷歌应用程序脚本端,使用了
createTemplateFromFile('2template')
createTemplateFromFile('3template')
。但是在HTML方面,文件名似乎是
template3.HTML
。“这个怎么样?”塔奈克,我道歉。这是一个打字错误,因为我在复制代码,以减少对公司信息、客户和服务的特定性。我编辑了这个问题。我还应该注意,代码在表单上,而不是响应表上。我假设这与它是否使用“e”来携带响应输入无关。我正在考虑调整代码以在工作表上工作,并从最新输入(lastrow)获取数据。感谢您回答和更新您的问题。关于
我尝试在提交表单时记录'e',以查看我得到的代码评估结果,它返回'[object][object]',这一定是一些我不理解的概念错误。
,如果您使用了
console.log(e)
,请使用
JSON.stringify
类似
console.log(JSON.stringify(e))
然后再次测试。这样,您可以提供
console.log(JSON.stringify(e))
的示例值吗?在此,我想确认您的问题。我使用标准表单条目运行它。这是整个stackdriver日志:2020年11月22日,10:59:02 PM Info[METHOD]onFormSubmit 2020年11月22日,10:59:03 PM Debug{“authMode”:“FULL”,“response”:{},“source”:{},“triggerUid”:“5419063”}2020年11月22日,10:59:03 PM Info[METHOD]checkAlert 2020年11月22日,10:59:03 PM错误类型错误:无法在onFormSubmit(代码:6:3)的checkAlert(代码:12:22)读取未定义的属性“getValues”。感谢您的回复。如果回复中的
{“authMode”:“FULL”,“response”:{},“source”:{},“triggerUid”:“5419063”}
console.log(JSON.stringify(e))
的值,则似乎不包括
范围。不幸的是,从您的问题中,我无法理解您复制问题的设置细节。所以我还不能告诉你你的问题的明确原因。这是因为我的技术差。对此我深表歉意。