Question



I am developing a quiz application. I have some questions with 4 options in my spreadsheet, from that spreadsheet I am generating dynamic/runtime forms, so 50 user have 50 different forms, but I am unable to collect responses to my current quiz sheet.

Code in Google Spreadsheet Script Editor:

    function Quiz(){
       var form = FormApp.create('Quiz');
       var ss = SpreadsheetApp.getActiveSpreadsheet(),
       sourceSheet = ss.getSheetByName('Sheet1'),
       sourceRng = sourceSheet.getDataRange(),
       sourceRows = sourceRng.getValues(),
       i;
      for (i = 1; i < sourceRows.length; i += 1)
      {
        count = 0;
        var item = form.addCheckboxItem();
        item.setTitle(sourceRows[i][0]);
         item.setChoices([
            item.createChoice(sourceRows[i][1]),
            item.createChoice(sourceRows[i][2]),
            item.createChoice(sourceRows[i][3]),
            item.createChoice(sourceRows[i][4]),
            item.createChoice(sourceRows[i][5]),
          ]);
       }
}


for a static form I used given below code to get responses, but how can I generate dynamic forms with default setting ( where I have response destination of spreadsheet, username and given code in script editor):

function quizAnswers(){
 var form = FormApp.openById(<<dynamic form ID>>);
 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];
     Logger.log('Response #%s to the question "%s" was "%s"',
         (i + 1).toString(),
         itemResponse.getItem().getTitle(),
         itemResponse.getResponse());
}}}
Was it helpful?

Solution

Use this to select for responses of form.

form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId());

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top