Javascript Google表单下拉列表和带有循环的部分

Javascript Google表单下拉列表和带有循环的部分,javascript,forms,loops,google-sheets,add,Javascript,Forms,Loops,Google Sheets,Add,因此,我有一个项目,我正在工作,我需要创建一个谷歌表单的基础上的名称在谷歌表。它基本上需要的流动方式是为工作表中的每个名称创建一个选项,作为第一节中的下拉列表,然后为每个名称创建一个节。当该人员在第一部分中选择其姓名时,应将其发送到名为“其姓名”的部分。例如,名称1应转到标题为名称1的部分,名称2应转到名称2的部分,等等。下面的代码将创建一个Google表单,并使用名称创建部分。引起的问题是,它不会将姓名添加到下拉列表中(它将创建一个没有选项的下拉列表),也不会根据答案设置目的地。有什么想法吗

因此,我有一个项目,我正在工作,我需要创建一个谷歌表单的基础上的名称在谷歌表。它基本上需要的流动方式是为工作表中的每个名称创建一个选项,作为第一节中的下拉列表,然后为每个名称创建一个节。当该人员在第一部分中选择其姓名时,应将其发送到名为“其姓名”的部分。例如,名称1应转到标题为名称1的部分,名称2应转到名称2的部分,等等。下面的代码将创建一个Google表单,并使用名称创建部分。引起的问题是,它不会将姓名添加到下拉列表中(它将创建一个没有选项的下拉列表),也不会根据答案设置目的地。有什么想法吗

函数建议表单(){
var form=FormApp.create(‘粉丝推荐表’);
表格.setTitle(“粉丝推荐表”)
.setConfirmationMessage('感谢您的响应!')//稍后设置确认消息
.SetAllowResponsedIts(false)
.setAcceptingResponses(真);
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('教师和电子邮件列表');
var startRow=2;
var numRows=200;
var dataRange=sheet.getRange(startRow,1,numRows,4)
var data=dataRange.getValues();
var whoAreYou=form.addListItem();
你是谁。setTitle('你是谁?')
var nameBreak=[]
var nameChoice=[]
对于(变量i=0;i}
setChoices函数的语法错误。您需要创建一个选择数组,如下所示:

var choices = []
choices[i] = whoAreYou.createChoice(name,form.addPageBreakItem().setTitle(name)) 
然后,您可以在setChoices方法中使用此数组来设置所有选择

 whoAreYou.setChoices(choices)
有关更多详细信息,请查看

下面是包含这些更改的修改代码

function RecommendationForm(){
  var form = FormApp.create('FANS Recommendation Form');
  //var form = FormApp.openByUrl("https://docs.google.com/forms/d/11oaebH_BeFLAkpGjqs5EykqtNxXXaabuVCTk3uuc12s/edit")
  form.setTitle('FANS Recommendation Form')
     .setConfirmationMessage('Thanks for responding!')//SET CONFIRMATION MESSAGE LATER
     .setAllowResponseEdits(false)
     .setAcceptingResponses(true);
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet9');
  var startRow = 2;
  var numRows = 10;
  var dataRange = sheet.getRange(startRow, 1, numRows, 4)
  var data = dataRange.getValues();
  var whoAreYou = form.addListItem();
  whoAreYou.setTitle('Who are you?')
  var nameBreak
  var nameChoice
  var choices = []
  var choiceCounter = 0
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var name = row[0];
    var recNumber = row[2]
    if (name != ""){
    if (recNumber != 0){
    nameBreak = form.addPageBreakItem().setTitle(name);
    nameChoice = name
    choices[choiceCounter] = whoAreYou.createChoice(nameChoice,nameBreak)  // Create a array of choices with the navigation item 
    choiceCounter++;                                        // This counter will be independent of i counter and will be have no breaks. 
    }}

  };
  whoAreYou.setChoices(choices)  //Set Choices with the choice array. 
  Logger.log(form.getEditUrl())
  Logger.log(form.getPublishedUrl())
}
函数建议表单(){
var form=FormApp.create(‘粉丝推荐表’);
//var form=FormApp.openByUrl(“https://docs.google.com/forms/d/11oaebH_BeFLAkpGjqs5EykqtNxXXaabuVCTk3uuc12s/edit")
表格.setTitle(“粉丝推荐表”)
.setConfirmationMessage('感谢您的响应!')//稍后设置确认消息
.SetAllowResponsedIts(false)
.setAcceptingResponses(真);
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet9');
var startRow=2;
var numRows=10;
var dataRange=sheet.getRange(startRow,1,numRows,4)
var data=dataRange.getValues();
var whoAreYou=form.addListItem();
你是谁。setTitle('你是谁?')
变量nameBreak
变量名称选择
var选项=[]
变量choiceCounter=0
对于(变量i=0;i

希望这有帮助

setChoices函数的语法错误。您需要创建一个选择数组,如下所示:

var choices = []
choices[i] = whoAreYou.createChoice(name,form.addPageBreakItem().setTitle(name)) 
然后,您可以在setChoices方法中使用此数组来设置所有选择

 whoAreYou.setChoices(choices)
有关更多详细信息,请查看

下面是包含这些更改的修改代码

function RecommendationForm(){
  var form = FormApp.create('FANS Recommendation Form');
  //var form = FormApp.openByUrl("https://docs.google.com/forms/d/11oaebH_BeFLAkpGjqs5EykqtNxXXaabuVCTk3uuc12s/edit")
  form.setTitle('FANS Recommendation Form')
     .setConfirmationMessage('Thanks for responding!')//SET CONFIRMATION MESSAGE LATER
     .setAllowResponseEdits(false)
     .setAcceptingResponses(true);
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet9');
  var startRow = 2;
  var numRows = 10;
  var dataRange = sheet.getRange(startRow, 1, numRows, 4)
  var data = dataRange.getValues();
  var whoAreYou = form.addListItem();
  whoAreYou.setTitle('Who are you?')
  var nameBreak
  var nameChoice
  var choices = []
  var choiceCounter = 0
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var name = row[0];
    var recNumber = row[2]
    if (name != ""){
    if (recNumber != 0){
    nameBreak = form.addPageBreakItem().setTitle(name);
    nameChoice = name
    choices[choiceCounter] = whoAreYou.createChoice(nameChoice,nameBreak)  // Create a array of choices with the navigation item 
    choiceCounter++;                                        // This counter will be independent of i counter and will be have no breaks. 
    }}

  };
  whoAreYou.setChoices(choices)  //Set Choices with the choice array. 
  Logger.log(form.getEditUrl())
  Logger.log(form.getPublishedUrl())
}
函数建议表单(){
var form=FormApp.create(‘粉丝推荐表’);
//var form=FormApp.openByUrl(“https://docs.google.com/forms/d/11oaebH_BeFLAkpGjqs5EykqtNxXXaabuVCTk3uuc12s/edit")
表格.setTitle(“粉丝推荐表”)
.setConfirmationMessage('感谢您的响应!')//稍后设置确认消息
.SetAllowResponsedIts(false)
.setAcceptingResponses(真);
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet9');
var startRow=2;
var numRows=10;
var dataRange=sheet.getRange(startRow,1,numRows,4)
var data=dataRange.getValues();
var whoAreYou=form.addListItem();
你是谁。setTitle('你是谁?')
变量nameBreak
变量名称选择
var选项=[]
变量choiceCounter=0
对于(变量i=0;i
希望这有帮助