2016-11-30 100 views
1

我正在尝试创建一个Google Forms民意调查,其中的选项是用户生成的(就像老Facebook问卷调查一样,在他们被带走之前)。因此,用户可以投票选择已经列出的选项之一,或添加“其他”选项,然后显示给其他用户投票。允许用户将其他选项添加到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

在这个例子中,第一次,我投在这两个问题,并添加选项Test 1.1Test 2.1Other。第二次,我在第一个问题中投了Option 1,在第二个问题中投了Test 2.1

我不知道如何检查选项是否已存在,并将投票添加到已存在的选项。有任何想法吗?

回答

0

你所得到的物品ID:

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

你应该某处记录项目ID,作为该项目的ID,你要添加到永远的格式转换的选择,除非你删除的问题,并回来了另一个问题。您可以将ID硬编码为常量,也可以使用PropertiesService将ID存储在文档属性中。

相关问题