Champ caché dans un formulaire Google

j'ajoute un ID unique à chaque soumission du formulaire. Maintenant, j'ai fait que les ID le premier champ et pré-rempli avec l'ID, avec un texte d'aide en demandant à l'utilisateur de ne pas modifier ce champ. Est-il une option à laquelle je ne peux pas montrer cette option pour l'utilisateur?

32
demandé sur bluish 2013-12-03 08:05:38

3 réponses

je suppose que vous êtes seulement intéressé par des moyens programmatiques pour assigner un ID unique avant que l'utilisateur ne remplisse votre formulaire.

Non, Google Forms n'a toujours pas de support direct pour les champs cachés tels que vous avez dans les formulaires HTML. Votre seule option semble être la style personnalisé route, dont vous êtes déjà au courant.

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

  1. pré-remplir une question supprimée. Si vous supprimer une question d'un formulaire, il reste dans la feuille de calcul de la réponse - malheureusement, les formulaires suppriment les valeurs pour les questions supprimées qui sont présentées dans des URLs pré-remplies, sinon vous seriez en mesure de piéger votre ID Unique dans la soumission de cette façon. (J'ai pensé que cela pourrait être une solution intelligente, mais j'ai été déçu que cela n'ait pas fonctionné.)

  2. pré-remplir une question sur une page sautée1. Vous pouvez configurer une question sur une deuxième page qui le formulaire en direct sautera, et vous pouvez également générer une URL pré-remplie pour cette question. Jusqu'à présent, si bon - mais si l'utilisateur ne navigue pas réellement à cette page, la réponse pré-remplie n'est pas soumis.


1 merci à @AdamL, qui a posé cette idée pendant un discussion précédente sur ce sujet dans l'ancien forum.

20
répondu Mogsdad 2013-12-03 15:35:36

vous ne pouvez pas faire cela directement par Google Forms mais vous pouvez travailler autour de:

  1. créer le formulaire google contenant le champ caché.
  2. Créer un Google Wep App (https://developers.google.com/apps-script/guides/web)
  3. insérez le code suivant dans le Code par défaut.dossier gs. (Ceci ouvre essentiellement un index.modèle html.)

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

  4. Créer un nouvel index.fichier html avec le code source de votre formulaire.

  5. masquer le champ d'entrée en ajoutant style="display:none" à son enveloppant <div>
  6. insérez n'importe quelle information de modèle dans le <input value=""> champ à l'aide de <?= your_gscript_code() ?>
  7. publier l'application web (publier / déployer l'application web...) et vous avez terminé. Maintenant, vous avez un lien vers un formulaire qui a un champ caché et pré-rempli avec votre valeur cachée.

avec cette solution vous pouvez appliquer n'importe quel style personnalisé et même se débarrasser d'autres éléments html inutiles tout en conservant le formulaire hébergé par Google.

4
répondu ezsi 2016-06-08 08:29:47

je pense que j'ai trouvé une solution à votre problème. Un script sur la feuille que les données de votre formulaire vont être déclenché sur le formulaire soumettre. Vous pouvez ensuite copier et incrémenter une "fourchette" pour chaque ligne soumise.

* modifier, exemple de code a été demandé. Pour que ce code fonctionne, vous devez "installer un déclencheur" en utilisant le menu ressources de votre script googleapp et utiliser "from spreadsheet" "on form submit". J'ai fait bouillir ce que je suis en train de faire jusqu'à l'extrait 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
répondu Puppetx 2015-10-25 20:09:01