使用脚本创建表单:分页并转到页面问题

Vin*_*nte 5 google-apps-script google-forms

在我提出问题之前,我想指出我是法国人,所以我的英语可能不好.如果我的问题不明白,我会尝试以更好的方式解释它.

我目前正在使用谷歌脚本来创建表单.在这种形式中,我想问受访者几个多项选择题.为了获得良好和具体的结果,我想根据受访者的个人资料调整我提出的问题.

为了说清楚这是我形式的形状:我首先向受访者询问第一个问题,并提出5个可能的答案.在答案后,被访者将被引导到新的页面.在这个新页面上,有一个新的多项选择题,有2个可能的答案.再一次,根据答案,被访者必须被引导到一个新的页面等等......最后,当我得到我想要的所有细节时,我会向被访者提出准确的问题.最后一页是一个包含大量多项选择题的页面,所有受访者都必须回答,不依赖于他们的个人资料.

我试过用谷歌脚本这样写:

var page1 = form.addPageBreakItem()
    .setTitle('First page');
var item = form.addMultipleChoiceItem();
 item.setTitle('Question')
     .setChoices([
         item.createChoice('Yes',page2),
         item.createChoice('No',page3)
       ]);
var page2 = form.addPageBreakItem()
    .setTitle('Second page');
var page3 = form.addPageBreakItem()
    .setTitle('Third page');
Run Code Online (Sandbox Code Playgroud)

但是由于page1和page3是在page1之后定义的,所以脚本不理解它,并且在答案时无法跳转到page3或page2.我试图先定义我的所有页面,但后来我不知道如何将我的多个答案问题添加到特定页面.

有人能给我一个提示吗?无论如何,感谢阅读,如果不清楚,请不要犹豫,要求更多解释

Mog*_*dad 5

您只需要更改操作的顺序; 您不需要将操作保持item在一起.这是一个使用您的代码的示例:

function createForm() {
  var title = 'Multipage Form Test';
  var description = 'Stackoverflow question 17083500';

  var form = FormApp.create(title)
      .setDescription(description)
      .setConfirmationMessage('Thanks for responding!');

  var page1 = form.addPageBreakItem()
      .setTitle('First page');
  var item = form.addMultipleChoiceItem();
  var page2 = form.addPageBreakItem()
      .setTitle('Second page');
  var page3 = form.addPageBreakItem()
      .setTitle('Third page');

  item.setTitle('Question')
      .setChoices([
         item.createChoice('Yes',page2),
         item.createChoice('No',page3)
       ]);

  Logger.log(form.getEditUrl());
  Logger.log(form.getPublishedUrl());
}
Run Code Online (Sandbox Code Playgroud)

从日志中复制"编辑URL",然后检查 - 您会发现该表单具有您要查找的行为:

在此输入图像描述