【问题标题】:How to use Google Apps Script to set the "values" and "go to section based on answer" for a Google Form dropdown?如何使用 Google Apps 脚本为 Google 表单下拉菜单设置“值”和“根据答案转到部分”?
【发布时间】:2019-10-17 00:37:34
【问题描述】:

我使用 Google 表格来存储 Google 表单下拉列表的“值”和“根据答案转到部分”。如何使用 Google Apps 脚本为下拉菜单设置“值”和“根据答案转到部分”?

我可以使用脚本从 Google 表格中设置值,但我无法使用表格和脚本为下拉菜单设置“根据答案转到部分”。

我已经在我用来设置值的脚本中拥有下拉列表的listItem。我尝试使用createChoice(value, navigationItem) 并用它设置“转到部分”,然后使用setChoiceValues(values),但我在表单上将所有内容设置为“选择”。

【问题讨论】:

  • 您好,您可以提供您正在处理的代码示例吗?

标签: google-apps-script google-forms


【解决方案1】:

如果您只想创建一个下拉项,根据使用 Apps 脚本的选择将您带到不同的部分:

function createDropdownExample() {
  var form = FormApp.openById('your_form_id');
  var item = form.addMultipleChoiceItem();
  item.setTitle('Do you prefer cats or dogs?');  
  var dogsPage = form.addPageBreakItem().setTitle('Dogs');
  var catsPage = form.addPageBreakItem().setTitle('Cats');
  var dogsChoice = item.createChoice('Dogs', dogsPage);
  var catsChoice = item.createChoice('Cats', catsPage);
  item.setChoices([dogsChoice, catsChoice]);
}

【讨论】:

  • 我已经在表单上创建了一个下拉列表,我正在使用脚本从谷歌表格中填充下拉列表的值。因此,如果工作表中的任何值发生更改,它会自动反映在下拉列表中。到目前为止一切正常。现在,我还想使用脚本为每个选项设置“根据答案转到部分”。我想使用脚本的原因是因为有很多选择,而且它们可能会不断变化。因此,如果我可以使用存储在工作表中的数据为每个选项设置“值”和“转到部分”,那将是理想的。
  • 我发布的代码可以动态设置值和“转到部分”,只需将 'Dogs' 和 'Cats' 更改为工作表中的任何值。
  • 对不起,我错过了。是的,我完全按照你的建议做了!谢谢!
  • 好的。此外,出于文档目的,请记住,为了将您的问题标记为已解决,您可以接受提供的答案之一。
【解决方案2】:

这是上面的一个版本,带有来自电子表格的值:

function GoToPage() {
var form = FormApp.openById('MY FORM');
var spreadsheet = SpreadsheetApp.openById("MY SPREADSHEET");
var sheet = spreadsheet.getSheetByName("MY SHEET");
var list = form.getItemById("MY MULTIPLE CHOICE ID").asListItem()  
var pagebreak01 = form.getItemById("PAGE BREAK ID 1").asPageBreakItem();
var pagebreak02 = form.getItemById("PAGE BREAK ID 2").asPageBreakItem();
var pagebreak03 = form.getItemById("PAGE BREAK ID 3").asPageBreakItem();
var choice1 = sheet.getRange("RANGE 1 FROM MY SHEET").getValues();
var choice2 = sheet.getRange("RANGE 2 FROM MY SHEET").getValues();
var choice3 = sheet.getRange("RANGE 3 FROM MY SHEET").getValues();  
list.setChoices([
  list.createChoice(choice1, pagebreak01),
  list.createChoice(choice2, pagebreak02),
  list.createChoice(choice3, pagebreak03)]); 
}

【讨论】:

    【解决方案3】:

    我使用的是setChoiceValues(values) 而不是setChoices(choices)。当我进行此更正时,我能够动态设置“转到部分”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 1970-01-01
      • 2022-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      相关资源
      最近更新 更多