Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Google apps script 如何将Google Forms答案转换为布尔变量,以生成特定页面_Google Apps Script_Logic_Google Forms - Fatal编程技术网

Google apps script 如何将Google Forms答案转换为布尔变量,以生成特定页面

Google apps script 如何将Google Forms答案转换为布尔变量,以生成特定页面,google-apps-script,logic,google-forms,Google Apps Script,Logic,Google Forms,第一次使用堆栈溢出,所以如果我做错了,请原谅 我正在做一个学校项目,我想制作一个谷歌表单,包含8个不同的“是”或“否”问题,这些问题根据答案组合指向特定页面。我使用真值表和逻辑来找出答案的组合会导致什么结果。例如,逻辑表达式A'B'E'F(C'+D)会产生关于电缆管理用电缆槽的结果。然而,我正试图找到一种方法来真正做到这一点 我想知道是否有人知道是否有可能使用谷歌的应用程序脚本来实现这一点。我只是在寻找一种方法,将表单中的yes/no答案转换为true/false变量,用于发送到特定页面 我正试

第一次使用堆栈溢出,所以如果我做错了,请原谅

我正在做一个学校项目,我想制作一个谷歌表单,包含8个不同的“是”或“否”问题,这些问题根据答案组合指向特定页面。我使用真值表和逻辑来找出答案的组合会导致什么结果。例如,逻辑表达式
A'B'E'F(C'+D)
会产生关于电缆管理用电缆槽的结果。然而,我正试图找到一种方法来真正做到这一点

我想知道是否有人知道是否有可能使用谷歌的应用程序脚本来实现这一点。我只是在寻找一种方法,将表单中的yes/no答案转换为true/false变量,用于发送到特定页面


我正试图在谷歌表单中这样做,但我对其他网站开放。

在应用程序脚本中无法从表单提交打开URL,因为表单提交期间,表单编辑器未打开

基于:

脚本只能与打开编辑器的当前实例的UI交互,并且仅当脚本是绑定到编辑器的容器时

我建议的一个解决方法是用url链接向受访者发送电子邮件


样本表格:

  • 每个“是”或“否”多项选择题都设置为“必需”
  • 收集电子邮件地址在表单设置下启用
  • 自定义确认消息已在表单设置下设置“请检查您的电子邮件中的参考链接”

表单脚本编辑器: 示例代码:

function onSubmitForm(e) {
 
  var response = e.response;
  //Get item responses
  var items =response.getItemResponses();
  //Get respondent's email
  var email = response.getRespondentEmail();
  var url;
  var A = [];

  //Convert responses Yes/No to 1/0
  for(var i = 0; i<items.length; i++){
    A.push(items[i].getResponse()=="Yes"?1:0);
  }
  Logger.log(A);

  Logger.log(!A[0] * !A[1] * !A[4] * A[5] * (!A[2] + A[3]));

  //Check if logical expression was satisfied A'B'E'F ( C' + D )
  if(!A[0] * !A[1] * !A[4] * A[5] * (!A[2] + A[3])){
    url = "https://www.youtube.com/?hl=en&gl=PH";
  }else{
    url = "https://google.com";
  }

  //Send Email with the link
  var subject = "Test Email";
  var body = "Please refer to this link: "+url;
  MailApp.sendEmail(email,subject,body);

}
子表单(e)上的函数{ var响应=e.响应; //获取项目响应 var items=response.getItemResponses(); //获取受访者的电子邮件 var email=response.getRespondentEmail(); var-url; var A=[]; //将回答“是/否”转换为1/0
对于(var i=0;我不熟悉你的例子中的单引号的含义。你能解释一下吗?当你说
引导你到一个特定的页面时
你是指表单中的一个页面还是其他什么。在表单提交之前,你无法得到表单答案,你可以用UrlFetchApp.fetch()打开表单。一旦表单打开,就没有交互式编程交互。我认为onFormSubmit没有任何简单的触发器。是的,这是一个作为可安装触发器手动添加的普通函数。它可以替换为任何首选函数名