2017-03-25 18 views
0

私はGoogleシートの名前に基づいてGoogleフォームを作成する必要があるこのプロジェクトを行っています。基本的には、シート内のすべての名前がセクション1のドロップダウンとしてオプションになり、各名前に対してセクションが作成される必要があります。人が最初のセクションで自分の名前を選択すると、自分の名前のセクションに送られます。たとえば、名前1は名前1、名前2〜名前2などのセクションに移動する必要があります。下のコードはGoogleフォームを作成し、その名前のセクションを作成します。問題は、ドロップダウンリストに名前を追加しない(オプションなしでドロップダウンリストを作成する)ことであり、回答に基づいて宛先も設定しないということです。何かご意見は?Googleフォームのドロップダウンとループを含むセクション

function RecommendationForm(){ 
 
    var form = FormApp.create('FANS Recommendation Form'); 
 
    form.setTitle('FANS Recommendation Form') 
 
    .setConfirmationMessage('Thanks for responding!')//SET CONFIRMATION MESSAGE LATER 
 
    .setAllowResponseEdits(false) 
 
    .setAcceptingResponses(true); 
 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Teacher and Email List'); 
 
    var startRow = 2; 
 
    var numRows = 200; 
 
    var dataRange = sheet.getRange(startRow, 1, numRows, 4) 
 
    var data = dataRange.getValues(); 
 
    var whoAreYou = form.addListItem(); 
 
    whoAreYou.setTitle('Who are you?') 
 
    var nameBreak = [] 
 
    var nameChoice = [] 
 
    for (var i = 0; i < data.length; ++i) { 
 
    var row = data[i]; 
 
    var name = row[0]; 
 
    var recNumber = row[2] 
 
    if (name != ""){ 
 
    if (recNumber != 0){ 
 
    nameBreak[i] = form.addPageBreakItem().setTitle(name); 
 
    nameChoice[i] = name 
 
    }}}; 
 
    whoAreYou.setChoices([ 
 
    whoAreYou.createChoice(nameChoice,nameBreak) 
 
    ]) 
 
}

答えて

0

あなたは間違ったsetChoices関数の構文を得ました。あなたはそのような選択肢の配列を作成する必要があります。

var choices = [] 
choices[i] = whoAreYou.createChoice(name,form.addPageBreakItem().setTitle(name)) 

その後、すべてのあなたの選択肢を設定するsetChoices方法でこの配列を使用することができます。詳細は

whoAreYou.setChoices(choices) 

表情以下here

を持って

function RecommendationForm(){ 
    var form = FormApp.create('FANS Recommendation Form'); 
    //var form = FormApp.openByUrl("https://docs.google.com/forms/d/11oaebH_BeFLAkpGjqs5EykqtNxXXaabuVCTk3uuc12s/edit") 
    form.setTitle('FANS Recommendation Form') 
    .setConfirmationMessage('Thanks for responding!')//SET CONFIRMATION MESSAGE LATER 
    .setAllowResponseEdits(false) 
    .setAcceptingResponses(true); 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet9'); 
    var startRow = 2; 
    var numRows = 10; 
    var dataRange = sheet.getRange(startRow, 1, numRows, 4) 
    var data = dataRange.getValues(); 
    var whoAreYou = form.addListItem(); 
    whoAreYou.setTitle('Who are you?') 
    var nameBreak 
    var nameChoice 
    var choices = [] 
    var choiceCounter = 0 
    for (var i = 0; i < data.length; ++i) { 
    var row = data[i]; 
    var name = row[0]; 
    var recNumber = row[2] 
    if (name != ""){ 
    if (recNumber != 0){ 
    nameBreak = form.addPageBreakItem().setTitle(name); 
    nameChoice = name 
    choices[choiceCounter] = whoAreYou.createChoice(nameChoice,nameBreak) // Create a array of choices with the navigation item 
    choiceCounter++;          // This counter will be independent of i counter and will be have no breaks. 
    }} 

    }; 
    whoAreYou.setChoices(choices) //Set Choices with the choice array. 
    Logger.log(form.getEditUrl()) 
    Logger.log(form.getPublishedUrl()) 
} 

は、この情報がお役に立てば幸い、これらの変更を組み込んで変更されたコードです!

関連する問題