2015-12-18 31 views
5

Vorrei creare uno dei campi di risposta nel modulo Google di sola lettura o nascosto in modo che il destinatario del modulo non sia in grado di modificarlo/vederlo.Modulo Google, creare un campo di risposta in sola lettura

È possibile?

qui è il contesto:

Quindi, in pratica il mio obiettivo finale è quello di sfruttare Google Forms funzionalità per inviare sondaggi per i destinatari e monitorare la loro risposte in un response spreadsheet.

Fin qui tutto bene ...

Ora lasciate che vi presenti a 2 vincoli imposti su di me:

  1. Forme inviati a destinatari bisogno di avere alcune informazioni circa il destinatario già pre-riempita .

  2. L'URL fornito a ciascun destinatario per l'accesso al modulo viene utilizzato per inviare e successivamente per aggiornare le risposte fornite nel modulo.

vedere il secondo vincolo è difficile ... La cosa comune da fare è generare un pre-filled Url inviare che al destinatario e una volta che hanno risposto al modulo è possibile avere una pagina di conferma in cui si forniscono con un Edit Url da utilizzare per aggiornare le loro risposte (con le risposte aggiornate aggiornate già pre-compilate).

Nel mio caso, non posso fornire loro un secondo url (l'URL di modifica). È una cosa da fare una sola volta: fornisco un url per ciascun destinatario e dovranno essere in grado di utilizzare lo stesso URL per rispondere e aggiornare la domanda-- in un secondo momento, se necessario.

Questa funzionalità non è supportata da Google per cui ho dovuto scrivere uno script che legge da un foglio di calcolo, utilizzare i dati in ogni riga per pre-riempite un modulo designato, inviare ogni modulo quindi generare un Modifica URL per ogni destinatario che poi inserisco nella colonna "edit url" del mio foglio di lavoro. Ora posso dare gli URL ai destinatari e saranno in grado di utilizzare l'url più e più volte per aggiornare le risposte nel sondaggio.

Ora per tornare al campo hidden/readonly. Nel mio foglio di calcolo, ho un valore alfanumerico univoco per ogni destinatario. Voglio che venga passato al modulo in modo che quando rispondono (le risposte sono registrate in un foglio di calcolo di risposta) sarò in grado di identificare ciascun destinatario con questo "id" unico.

Ho scritto molto qui, ma so che è importante dare un contesto alle persone in modo che possano aiutarci a vicenda in modo preciso e ponderato.

+0

Perché vuoi farlo? – Mogsdad

+0

@Mogsdad compreso un campo che passa un ID sul foglio di risposta è una richiesta frequente che sto vedendo –

+0

Hai realizzato qualche sforzo di ricerca prima di postare la domanda come rivedere la [Guida di Google Forms] (https://support.google .com/docs # topic = 1360904) e [Documentazione servizio moduli] (https://developers.google.com/apps-script/reference/forms/)? Riferimento: [ask] –

risposta

6

Come impedire all'utente di visualizzare parti del modulo.

Prima di creare una domanda richiesta. La domanda richiesta impedisce all'utente di andare alla pagina successiva a meno che la domanda non abbia una risposta.

Impostare la domanda, in modo che la risposta alla domanda CONSENTE SOLAMENTE all'utente di andare alla pagina di invio.

Quindi, di avere almeno 3 pagine:

  • prima pagina è entrata
  • una pagina intermedia che sarà nascosto
  • ultima pagina è la pagina Invia.

È possibile configurarlo, in modo che sia impossibile per l'utente accedere a tale pagina intermedia. Si crea una domanda richiesta, che ha solo un'opzione, per andare alla pagina di invio.

E puoi pre-compilare la domanda richiesta e avere un titolo che reciti "Solo per scopi di amministratore" o qualcosa che dice loro di continuare a muoversi.

Fare clic sul pulsante "Continua", salta la pagina con l'input "nascosto" e passa direttamente alla pagina Invia.

Se non fanno clic sul pulsante "Continua", ma rispondono alla domanda, quindi si andrà anche alla pagina Invia, perché la domanda è impostata per andare alla pagina Invia. Ad ogni modo, va alla pagina Invia.

3

Gli unici elementi che un modulo può contenere che non sono per la raccolta dei dati sono:

Tutte le altre voci sono destinati all'input e non possono essere "letti".

+0

Ho provato a dare più contesto nella mia domanda. Grazie per la risposta quelle sono risorse istruttive. – Cyzanfar

2

Aggiornamento: Google ha un limite di 20 trigger per script. Ciò significa che questa soluzione funziona solo in uno scenario in cui si generano 20 risposte modulo o meno.

Finalmente, capito.

Innanzitutto, creare un modulo con un'opzione a scelta multipla. Questo codice presuppone che sia il primo elemento nel modulo.

var readonlyValue = 'some unique ID'; 
var form = FormApp.openById('get the ID from the form in edit mode'); 
var formResponse = form.createResponse(); 
items = form.getItems(); 
var readonlyId = items[0].getId(); 
var readonlyItem = form.getItemById(readonlyId); 
readOnlyItem.asMultipleChoiceItem().setChoiceValues([readonlyValue]); 
formResponse.withItemResponse(readonlyItem.asMultipleChoiceItem().createResponse(readonlyValue));  
formUrl = formResponse.submit().toPrefilledUrl(); 
//formUrl, now has a link to the form with your unique value: pre-filled and pre-selected