2014-10-01 1 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

Что не происходит, что вы хотите? Как сопоставить выбор в форме с таблицей, на которую нужно писать?

Если это так, вы можете жестко закодировать объект всех идентификаторов таблиц и сопоставить их с выбором формы.

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