5

在我问我的问题之前,我想指出我是法国人,所以我的英语可能不好。如果我的问题没有被理解,我会尝试以更好的方式解释它。

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

为了清楚起见,这是我的表格的形状:我首先向受访者询问第一个问题,其中有 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');

但是由于page2和page3是在page1之后定义的,所以脚本看不懂,回答后不能跳转到page3或者page2。我试图先定义我的所有页面,但后来我不知道如何将我的多个答案问题添加到特定页面中。

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

4

1 回答 1

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());
}

从日志中复制“编辑 URL”,然后检查 - 您会发现表单具有您正在寻找的行为:

在此处输入图像描述

于 2013-06-13T15:18:02.587 回答