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

时间:2013-06-13 09:21:58

标签: google-apps-script google-form

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

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

要明确这是我的表单的形状: 我首先向受访者提出第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。 我已经尝试先定义我的所有页面,但后来我不知道如何将我的多个答案问题添加到特定页面中。

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

1 个答案:

答案 0 :(得分: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());
}

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

enter image description here