2 votes

Comment utiliser Google Apps script pour récupérer la valeur saisie par un utilisateur dans un champ Autre de Google Forms ?

J'ai un formulaire Google qui est une simple liste de cases à cocher avec une option "Autre". En tant qu'auteur du formulaire, il ressemble à ceci :

enter image description here

lorsque je remplis le formulaire, je peux cocher la case "Autre", saisir une valeur et valider.

enter image description here

mais lorsque mon script Google Apps s'exécute,

  var choices = checkboxItem.getChoices();
  Logger.log("Choices array length: %s", choices.length);

  var results = [];
  for (var i = 0; i < choices.length; ++i) {
    results.push(choices[i].getValue());
  }

  Logger.log("getFormChoicesAsStrings %s", JSON.stringify(results));

il ne voit pas ce que j'ai saisi pour la valeur "Autre" (dans cet exemple : "Steve Jobs"), comme le montre la sortie du journal :

[19-01-12 20:31:59:164 PST] Logger.log([Choices array length: %s, [1.0]]) [0 seconds]
[19-01-12 20:31:59:165 PST] Logger.log([getFormChoicesAsStrings %s, [["John Doe"]]]) [0 seconds]

Les L'API pour CheckboxItem permet d'indiquer par true/false si une autre option est affichée ou non. y l'API pour le choix n'offre rien de plus que l'option Autre.

Quel appel API puis-je effectuer pour lire la valeur de l'option Other ?

1voto

Tanaike Points 22314
  • Les utilisateurs cochent la case et mettent les valeurs à "Autre", puis cliquent sur le bouton d'envoi.
  • Dans la situation ci-dessus, vous souhaitez récupérer les valeurs de la réponse, y compris les valeurs de la section "Autres".

Si j'ai bien compris, que diriez-vous de cette modification ?

Point de modification :

  • Dans votre script, bien que je ne puisse pas voir l'ensemble du script, je pensais que les éléments du formulaire étaient récupérés. Il ne s'agit pas des valeurs de la réponse.

Modification du script :

Veuillez copier et coller le script suivant et installer le déclencheur pour myFunction() .

// FormApp.getActiveForm() // This is used for adding a scope of https://www.googleapis.com/auth/forms
function myFunction(obj) {
  var r = obj.response.getItemResponses();
  r.forEach(function(e) {
    var r1 = e.getItem().getTitle();
    var r2 = e.getResponse();
    Logger.log(r1); // "Who attended?"
    Logger.log(r2); // ["John Doe","Steve Jobs"]
  });
}

Nota:

  • Lorsque vous utilisez ce script, veuillez installer myFunction() en tant que déclencheur installable.
    • "Choisir la fonction à exécuter" est "maFonction".
    • L'option "Sélectionner la source de l'événement" est "Depuis le formulaire".
    • "Le type d'événement sélectionné est "On form sumit".

Références :

Si j'ai mal compris votre question, dites-le moi. J'aimerais la modifier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X