Search code examples
google-apps-scriptgoogle-forms

Get the current response onSubmit


Is there any way to find out the current response of the Google Form (programmatically)?

In the onSubmit function.

Looked over their documentation but I have to provide the respondId.

How do I find the respondId?

A snipped code from them about this is:

// Open a form by ID and log the responses to each question.
 var form = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
 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());
   }
 }

UPDATE:

function onSubmit(e) {
  /* Get values entered by filling the form */
  var itemResponses = e.response.getItemResponses();
  var myWantedValue = itemResponses[COLUMN_NUMBER].getResponse();
}

Note: By passing the e(vent) as parameter the values can be accessed by submitting the live form, NOT by the script editor!


Solution

  • This code gives you the values for the last form response, is that what you're looking for ?

    function myFunction() {
      var formResponses = FormApp.getActiveForm().getResponses();
      Logger.log(formResponses.length);
      var formResponse = formResponses[formResponses.length-1];
      var itemResponses = formResponse.getItemResponses();
      for (var j = 0; j < itemResponses.length; j++) {
        var itemResponse = itemResponses[j];
        Logger.log('Last response to the question "%s" was "%s"',
                   itemResponse.getItem().getTitle(),
                   itemResponse.getResponse());
      }
    }