2016-07-11 29 views
1

スプレッドシートから入力するGoogleフォームを作成しました。コードはhttps://www.youtube.com/watch?v=BYA4URuWw0sです。ここでは、スプレッドシートからの更新機能を失うことなく、以前の質問の回答に基づいてフォームを特定の質問に移動させたいと考えています。私はここからコードを変更しようとしました:How to assign Go_To_Page in Form Service on Multiple Choice?、しかし、まだ運が必要です。以下は今のところ私が持っているものです。私はコーディングに非常に新しいですし、どんな助けも大歓迎です。前もって感謝します!!!Googleフォームをスプレッドシートから作成して、回答に基づいて特定のページに移動するにはどうすればよいですか?

//insert your form ID 
var FORM_ID = '1iA8jX720Eqi_GKwiA1RJiWwzt3vJ8XOOAqh-SjO9mXM'; 
//insert your sheet name with a list 
var EMP_SHEET_NAME = 'empROSTER'; 
//insert your range of lis 
//insert list id (before run getItemsOfForm function and look at t as A1Notation 
var range1 = 'B2:B'; 
//insert list id (before run getItemsOfForm function and look at log CTRL+Enter) 
var ITEM_ID = '1097376824'; 

    /* 
    add date question? - 
    form.addDateItem() 
     .setTitle('Date of Work Performed') 
    */ 

//insert your sheet name with a list 
var JOB_SHEET_NAME = 'jobROSTER'; 
//insert your range of list as A1Notation 
var range2 = 'C2:C'; 
//insert list id (before run getItemsOfForm function and look at log CTRL+Enter) 
var ITEM2_ID = '773657499'; 

//insert your sheet name with a list 
var AT_SHEET_NAME = '300'; 
//insert your range of list as A1Notation 
var range3 = 'B2:B'; 
//insert list id (before run getItemsOfForm function and look at log CTRL+Enter) 
var ITEM3_ID = '1884670833'; 

//insert your sheet name with a list 
var DT_SHEET_NAME = '1000'; 
//insert your range of list as A1Notation 
var range4 = 'B2:B'; 
//insert list id (before run getItemsOfForm function and look at log CTRL+Enter) 
var ITEM4_ID = '379969286'; 

//insert your sheet name with a list 
var CT_SHEET_NAME = '2000'; 
//insert your range of list as A1Notation 
var range5 = 'B2:B'; 
//insert list id (before run getItemsOfForm function and look at log CTRL+Enter) 
var ITEM5_ID = '128282987'; 

//insert your sheet name with a list 
var HOURS_SHEET_NAME = 'hourROSTER'; 
//insert your range of list as A1Notation 
var range6 = 'B2:B'; 
//insert list id (before run getItemsOfForm function and look at log CTRL+Enter) 
var ITEM6_ID = '1385334889'; 


    //Section in question 
    function createGoTo(){ 
    var af = FormApp.openById(FORM_ID); 
    var pAdmin = af.getItemById(AT_SHEET_NAME); //use findPageIds to get the page id of a pre-created page 
    var pDesign = af.getItemById(DT_SHEET_NAME); 
    var pCon = af.getItemById(CT_SHEET_NAME); 
    var item = ITEM2_ID 
    //create choices as an array 
    var choices = []; 
    choices.push(item.createChoice('Administration Job', pAdmin)); 
    choices.push(item.createChoice('Design Job', pDesign)); 
    choices.push(item.createChoice('Construction Job', pCon)); 

    // assignes the choices for the question 
    item.setChoices(choices); 
    } 

    function findPageIds(){ 
    var af = FormApp.getActiveForm(); 
    var pages = af.getItems(FormApp.ItemType.PAGE_BREAK); 

    for (i in pages){ 
     var pName = pages[i].getTitle(); 
     var pId = pages[i].getId(); 
     Logger.log(pName+":"+pId); 
    } 
    } 
    //End of section in question 


function updateEmpName() { 
var values_ = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(EMP_SHEET_NAME).getRange(range1).getValues(); 
values_[0][0] = values_[0][0].toString(); 
for(var i = 1; i < values_.length; i++){ 
// the if-block from https://productforums.google.com/d/msg/docs/v8ejYFpoGa8/HVqg6auIAg0J 
if(values_[i][0] != "") { 
    values_[0].push(values_[i][0].toString()) 
    } 
} 
var form = FormApp.openById(FORM_ID); 
var list = form.getItemById(ITEM_ID); 
list.asListItem().setChoiceValues(values_[0]); 
} 

function updateJobName() { 
var values2_ = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(JOB_SHEET_NAME).getRange(range2).getValues(); 
values2_[0][0] = values2_[0][0].toString(); 
    for(var i = 1; i < values2_.length; i++){ 
    // the if-block from https://productforums.google.com/d/msg/docs/v8ejYFpoGa8/HVqg6auIAg0J 
    if(values2_[i][0] != "") { 
     values2_[0].push(values2_[i][0].toString()) 
} 
} 
    var form = FormApp.openById(FORM_ID); 
var list = form.getItemById(ITEM2_ID); 
list.asListItem().setChoiceValues(values2_[0]); 
} 

function updateAdminTasks() { 
var values3_ = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(AT_SHEET_NAME).getRange(range3).getValues(); 
values3_[0][0] = values3_[0][0].toString(); 
for(var i = 1; i < values3_.length; i++){ 
    // the if-block from https://productforums.google.com/d/msg/docs/v8ejYFpoGa8/HVqg6auIAg0J 
    if(values3_[i][0] != "") { 
    values3_[0].push(values3_[i][0].toString()) 
    } 
} 
var form = FormApp.openById(FORM_ID); 
    var list = form.getItemById(ITEM3_ID); 
    list.asListItem().setChoiceValues(values3_[0]); 
} 

function updateDesignTasks() { 
var values4_ = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(DT_SHEET_NAME).getRange(range4).getValues(); 
values4_[0][0] = values4_[0][0].toString(); 
    for(var i = 1; i < values4_.length; i++){ 
    // the if-block from https://productforums.google.com/d/msg/docs/v8ejYFpoGa8/HVqg6auIAg0J 
    if(values4_[i][0] != "") { 
    values4_[0].push(values4_[i][0].toString()) 
    } 
} 
var form = FormApp.openById(FORM_ID); 
    var list = form.getItemById(ITEM4_ID); 
    list.asListItem().setChoiceValues(values4_[0]); 
} 

function updateConstructionTasks() { 
var values5_ = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(CT_SHEET_NAME).getRange(range5).getValues(); 
values5_[0][0] = values5_[0][0].toString(); 
for(var i = 1; i < values5_.length; i++){ 
    // the if-block from https://productforums.google.com/d/msg/docs/v8ejYFpoGa8/HVqg6auIAg0J 
    if(values5_[i][0] != "") { 
    values5_[0].push(values5_[i][0].toString()) 
    } 
    } 
var form = FormApp.openById(FORM_ID); 
var list = form.getItemById(ITEM5_ID); 
    list.asListItem().setChoiceValues(values5_[0]); 
} 

function updateHours() { 
var values6_ = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(HOURS_SHEET_NAME).getRange(range6).getValues(); 
values6_[0][0] = values6_[0][0].toString(); 
for(var i = 1; i < values6_.length; i++){ 
    // the if-block from https://productforums.google.com/d/msg/docs/v8ejYFpoGa8/HVqg6auIAg0J 
if(values6_[i][0] != "") { 
    values6_[0].push(values6_[i][0].toString()) 
    } 
} 
var form = FormApp.openById(FORM_ID); 
var list = form.getItemById(ITEM6_ID); 
list.asListItem().setChoiceValues(values6_[0]); 
} 

function getItemsOfForm(){ 
var form = FormApp.openById(FORM_ID); 
var items = form.getItems(FormApp.ItemType.LIST); 
for(var i in items){ 
    Logger.log('id: ' + items[i].getId() + ' title: ' + items[i].getTitle()); 
} 
} 

答えて

0

PageBreakItem

ページの開始をマークレイアウト項目。項目はFormからアクセスまたは作成できます。

PageNavigationType

ページナビゲーションのサポートの種類を表す列挙。ページのナビゲーションタイプはFormApp.PageNavigationTypeからアクセスできます。

回答者がオプションを含むページを完了した後、回答者がそのオプションを選択した場合にのみ、ページナビゲーションが行われます。回答者が同じページで複数のオプションを選択した場合、最後のナビゲーションオプションのみが有効です。ページナビゲーションは、フォームの最後のページにも影響しません。

ページナビゲーションを使用する選択肢は、同じアイテム内でページナビゲーションを使用しない選択肢と組み合わせることはできません。

// Create a form and add a new multiple-choice item and a page-break item. 
var form = FormApp.create('Form Name'); 
var item = form.addMultipleChoiceItem(); 
var pageBreak = form.addPageBreakItem(); 

// Set some choices with go-to-page logic. 
var rightChoice = item.createChoice('Vanilla', FormApp.PageNavigationType.SUBMIT); 
var wrongChoice = item.createChoice('Chocolate', FormApp.PageNavigationType.RESTART); 

// For GO_TO_PAGE, just pass in the page break item. For CONTINUE (normally the default), pass in 
// CONTINUE explicitly because page navigation cannot be mixed with non-navigation choices. 
var iffyChoice = item.createChoice('Peanut', pageBreak); 
var otherChoice = item.createChoice('Strawberry', FormApp.PageNavigationType.CONTINUE); 
item.setChoices([rightChoice, wrongChoice, iffyChoice, otherChoice]); 

あなたは、サンプルがGoogleとさらに流れを理解することが Mogsdad's answertに使用される実装によって作成従うことができます。

私は彼のコードスニペットを追加しました:

function createForm() { 
// Create a form and add a new multiple-choice item and a page-break item. 
var form = FormApp.create('Form Name'); 
var item = form.addMultipleChoiceItem(); 
item.setTitle('Do you like Food') 
var page2 = form.addPageBreakItem() 
.setTitle('Page 2') 
var item2 = form.addTextItem(); 
item2.setTitle('Why do you like food?') 
var page3 = form.addPageBreakItem() 
.setTitle('Page 3') 
var item3 = form.addTextItem(); 
item3.setTitle("Why don't you like food?") 

item.setTitle('Question') 
.setChoices([ 
item.createChoice('Yes',page2), 
item.createChoice('No',page3) 
]); 
} 
関連する問題