2014-10-01 179 views
0

我製作了一個表單來捕獲2個數據。
1)電子郵件地址。
2)用戶想要訂閱的組。Google Apps腳本[表單響應數據]

每個組都有自己的電子表格。

當用戶提交表單時,表單應該捕獲電子郵件地址,並將數據發送到用戶訂閱的相應電子表格。

這是我迄今爲止所做的。我卡住了..

function onFormSubmit() { 
    var form = FormApp.getActiveForm(); 

    var formResponses = form.getResponses(); 
    for (var i = 0; i < formResponses.length; i++) { 
    var formResponse = formResponses[i]; 
    var itemResponses = formResponse.getItemResponses(); 
    for (var j = 0; j < itemResponses.length; j++) { 
     var itemResponse = itemResponses[j]; 

     // Checks if it is multiple choice option 
     if (itemResponse.getItem().getType() == FormApp.ItemType.MULTIPLE_CHOICE) { 

     // If user chooses group 1, open spreadsheet and store user's email in 1st column 
     if (itemResponse.getResponse() == "1") { 
      var ss = SpreadsheetApp.openById("id goes here"); 
      var sheet = ss.getSheetByName("Group subscription email"); 
     } 
     } 


    } 
    } 
} 

回答

0

什麼不是你想要發生的事情?如何將表單中的選項與要寫入的電子表格匹配?

如果是這樣,您可以硬編碼所有電子表格ID的對象,並將它們匹配到表單選擇。

var objOfSpreadsheetIDs = {"1":"oicjo0948t09afoa", "2":"498hnxoiv7r6gahauvgi", "3":"uuiocvgofhgeoyuih"};  
Logger.log("Check my object: " + objOfSpreadsheetIDs["3"]) 

所以,你的代碼可能是這個樣子:

var objOfSpreadsheetIDs = {"1":"oicjo0948t09afoa", "2":"498hnxoiv7r6gahauvgi", "3":"uuiocvgofhgeoyuih"}; 

// If user chooses group 1, open spreadsheet and store user's email in 1st column 
var whatGroupUserChoose = itemResponse.getResponse(); 
var whatSS_ID = objOfSpreadsheetIDs[whatGroupUserChoose]; 

var ss = SpreadsheetApp.openById(whatSS_ID); 
var sheet = ss.getSheetByName("Group subscription email"); 
+0

您好,感謝您的答覆。但是當我得到itemResponse.getResponse()時,第一個循環只給我組響應。第二個循環給我發電子郵件。所以我不知道如何正確存儲這兩個數據。 – chopz 2014-10-02 04:49:00