web-dev-qa-db-fra.com

Champ masqué dans un formulaire Google

J'ajoute un identifiant unique à chaque soumission du formulaire. À l'heure actuelle, j'ai fait de cet identifiant le premier champ et je l'ai pré-rempli avec un identifiant, ainsi qu'un texte d'aide demandant à l'utilisateur de ne pas le modifier. Existe-t-il une option pour laquelle je ne peux pas montrer cette option à l'utilisateur?

34
Kira

Je suppose que vous êtes uniquement intéressé par les moyens d'attribuer un ID unique par programme avant que l'utilisateur ne remplisse votre formulaire.

Non, Google Forms ne prend toujours pas en charge directement les champs masqués tels que ceux que vous avez dans HTML Forms. Votre seule option semble être le style personnalisé route, que vous connaissez déjà.

Voici deux idées prometteuses qui ne fonctionnent tout simplement pas ...

  1. Pré-remplissez une question supprimée. Si vous supprimez une question d'un formulaire, elle reste dans la feuille de réponse. Malheureusement, Forms supprime les valeurs des questions supprimées qui sont présentées dans des URL préremplies. Sinon, vous pourrez intégrer votre identifiant unique façon. (J'ai pensé que cela pourrait être une solution de rechange intelligente, mais j'ai été déçu que cela ne fonctionne pas.)

  2. Pré-remplir une question sur une page sautée1. Vous pouvez configurer une question sur une deuxième page que le formulaire en direct ignorera, et vous pouvez également générer une URL préremplie pour cette question. Jusqu'ici, tout va bien - mais si l'utilisateur ne navigue pas réellement vers cette page, la réponse préremplie n'est pas soumise.


1Merci à @AdamL, qui a posé cette idée lors d'une discussion précédente sur ce sujet dans l'ancien forum.

23
Mogsdad

Vous ne pouvez pas le faire directement avec Google Forms, mais vous pouvez contourner les problèmes suivants:

  1. Créez le formulaire Google contenant le champ masqué. 
  2. Créer une application Google Wep ( https://developers.google.com/apps-script/guides/web )
  3. Insérez le code suivant dans le fichier Code.gs par défaut. (Cela ouvre essentiellement un modèle index.html.) 

    doGet(e) { return HtmlService.createTemplateFromFile('index').evaluate(); }

  4. Créez un nouveau fichier index.html avec le code source de votre formulaire.

  5. Rendez le champ de saisie masqué en ajoutant style="display:none" à son <div> entourant 
  6. Insérez n'importe quelle information de modèle dans le champ <input value=""> en utilisant <?= your_gscript_code() ?> 
  7. Publiez l'application Web (Publiez/Déployez l'application Web ...) et vous avez terminé. Vous avez maintenant un lien vers un formulaire dont le champ souhaité est caché et prérempli avec votre valeur cachée.

Avec cette solution, vous pouvez appliquer n’importe quel style personnalisé et même vous débarrasser d’autres éléments HTML inutiles, tout en conservant le formulaire hébergé par Google.

5
ezsi

Je pense avoir trouvé une solution à votre problème. Un script sur la feuille indiquant vos données de formulaire peut être déclenché lors de la soumission du formulaire. Vous pouvez ensuite copier et incrémenter une "plage" pour chaque ligne soumise.

* edit, un exemple de code a été demandé . Pour que ce code fonctionne, vous devez "installer un déclencheur" à l'aide du menu des ressources de votre script d'application Google et utiliser "à partir du tableur" "du formulaire d'envoi" ... .J'ai résumé ce que je fais au fragment suivant.

function myFormUpdates(e) {
  var spreadsheet = SpreadsheetApp.getActive()
  //select the sheet you're form is going to post data to
  var sheet = spreadsheet.setActiveSheet(spreadsheet.getSheets()[1])
  //select the last row and a unused column
  var cell = sheet.getRange(sheet.getLastRow(), 3)
  //set data
  cell.setValue('Data')
}
1
Puppetx

Le mieux que vous puissiez faire est d'aller dans les paramètres en haut à droite et de cliquer sur "Collecter les adresses électroniques". Cela ne le collectera pas, mais il possède un validateur et demande au répondant de répondre à une question à réponse courte filtrée par courrier électronique.

Exp IMG 1

Exp IMG 2

0
Mrs.PizzaGuy