2016-11-30 16 views
1

オプションをユーザーが生成した場所(古いFacebook Questionsの投票と同様、取り去られる前のもの)でGoogleフォームの投票を作成しようとしています。したがって、ユーザーはすでにリストされているオプションの1つに投票するか、「他の」オプションを追加することができます。このオプションは、他のユーザーが投票するために表示されます。私は、Googleのディスカッショングループで見つかった1に基づいて、このコードを使用していユーザーがGoogleフォームに追加オプションを追加できるようにする

は:

function addOption(e) { 
    try { 
    var form = FormApp.getActiveForm(); 
    var formResponse = e.response; 
    var itemResponses = formResponse.getItemResponses(); 

    for (var j = 0; j < itemResponses.length; j++) { 
     var itemResponse = itemResponses[j]; 
     var id = itemResponse.getItem().getId(); 
     var item = form.getItemById(id).asMultipleChoiceItem(); 
     var choices = item.getChoices(); 
     choices.push(item.createChoice(itemResponse.getResponse())); 
     item.setChoices(choices); 
    } 
    } catch (err) { Logger.log(err); } 
} 

それはあなたのいずれかに投票場合は、今、予想通り、リストにユーザー生成のオプションが追加されます既存のオプションは、あなたが投票したオプションの複製を追加します。この例では

In this example

、最初の頃は、私は両方の質問にOtherに投票やオプションTest 1.1Test 2.1を追加しました。 2回目には、最初の質問ではOption 1、2番目の質問ではTest 2.1に投票しました。

オプションがすでに存在するかどうかを確認して、既存のオプションに投票を追加する方法がわかりません。何か案は?

答えて

0

アイテムのIDを取得している:

var id = itemResponse.getItem().getId(); 
var item = form.getItemById(id).asMultipleChoiceItem(); 

あなたが質問を削除しない限り、あなたは、あなたがフォームのために変更することはありませんするオプションを追加したいアイテムIDとして、どこかのアイテムIDを記録する必要がありますもう一度質問を追加しました。 IDを定数としてハードコードするか、IDをPropertiesプロパティでDocumentプロパティに格納します。

関連する問題