5

質問する前に、私はフランス人なので、英語が下手かもしれないことを指摘したいと思います。私の問題が理解されていない場合は、より良い方法で説明しようとします。

私は現在、フォームを作成するためにGoogleスクリプトに取り組んでいます。このフォームでは、回答者にいくつかの多肢選択式の質問をしたいと思います。適切で具体的な結果を得るために、質問を回答者のプロフィールに合わせたいと考えています。

明確にするために、これが私のフォームの形です。まず、回答者に 5 つの可能な回答を含む最初の質問をします。回答すると、回答者は新しいページに移動する必要があります。この新しいページには、2 つの選択肢がある新しい多肢選択問題があります。繰り返しになりますが、回答すると、回答者は新しいページに移動する必要があります...最後に、必要な詳細がすべて得られたら、回答者に正確な質問をします。最後のページは、プロファイルに関係なく、すべての回答者が回答する必要がある多肢選択式の質問が多数含まれるページです。

私はこの方法でGoogleスクリプトに書き込もうとしました:

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 に答える