2015-12-18 35 views
5

私は、フォームの受信者はそれを参照してください/それを変更することができなくなりますように、Googleのフォーム読み取り専用または非表示に解答欄のいずれかをしたいのですが、回答フィールドを作ります。Googleのフォームは、読み取り専用

これは可能ですか?ここ

は、コンテキストです:

だから、基本的には私の究極の目標は、受信者にアンケートを送付し、response spreadsheetに彼らの答えを追跡するためにGoogle Forms機能を利用することです。

これまでのところは良い...

今私が私に課せられた2つの制約を紹介しましょう:

  1. の受信者に送信されたフォームは、既に予め充填された受信者に関するいくつかの情報を持っている必要があります。フォームにアクセスするために、各受信者に提供

  2. のURLを提出すると、後にフォーム上の回答を更新するために使用されます。

第2の制約が...行うには共通点がpre-filled Urlが受信者にそれを送信し、彼らは、フォームに答えてきた後、あなたとあなたがそれらを提供する確認ページを持つことができます生成するトリッキーです参照してください。 Edit Urlを使用して回答を更新することができます(最後に更新された回答は既に入力済みです)。私の場合は

、私は2番目のURL(編集のURL)とそれらを提供することはできません。これは、1回のことだ:私は、受信者ごとに1つのURLを提供し、彼らが答えると、彼らが必要な場合は、後でquestion--を更新するために、その同じURLを使用できるようにする必要があります。

この機能はGoogleではサポートされていないため、スプレッドシートから読み込んだスクリプトを作成し、各行のデータを使用して指定のフォームに入力し、各フォームを送信してから、これをスプレッドシートの「URLを編集」に挿入します。私は今、受信者にURLを渡すことができ、彼らは調査で回答を更新するためにそのURLを繰り返し使用することができます。バック隠し/読み取り専用フィールドに来るようになりました

。私のスプレッドシートには、各受信者に固有の英数字の値があります。私はそれがフォームに渡され、彼らが答えたとき(回答が応答スプレッドシートに記録される)、私はこのユニークな "id"で各受信者を識別できるようになります。

私はここで多くのことを書いたが、私はそれは、彼らが我々はすべて正確かつ思慮深い方法でお互いを助けることができるように人々にコンテキストを与えることが重要であることを知っています。

+0

なぜこれをやりたいですか? – Mogsdad

+0

レスポンスシートのIDを渡すフィールドを含む@Mogsdadは、私が見ている頻繁なリクエストです –

+0

[Googleフォームヘルプ](https://support.google .com/docs#topic = 1360904)と[Forms Service documentation(https://developers.google.com/apps-script/reference/forms/)?参考:[質問] –

答えて

6

フォームの一部が見えないようにする方法。

まず、必要な質問を作成します。必要な質問は、質問に答えない限り、ユーザが次のページに行くのを妨げる。

質問の回答がユーザーに送信ページのみに許可されるように、質問を設定します。

だから、あなたは少なくとも3ページがあります。

  • 1ページ目を
  • 最後のページを非表示になります中間ページを送信ページで入力
  • です。

ユーザーは、その中間ページにアクセスできないように設定できます。あなたは、提出するページに行くために、1つのオプションしか持っていない、必要な質問を作成します。

あなたはその必要な質問を事前に記入することができ、タイトルは「管理者のためだけに」または単に動かすように指示するものです。

「続行」ボタンをクリックし、「隠れた」入力があるページをスキップして、「送信」ページに進みます。

[続行]ボタンをクリックしないで質問に回答すると、質問が[送信]ページに移動するように設定されているため、[送信]ページにも移動します。いずれにしても、Submitページに移動します。

3

データを収集するためにされていないフォームに含めることができる唯一の項目は、次のとおりです。

他のすべてのアイテム入力用であり、 "読み取り専用"にすることはできません。

+0

私は私の質問でより多くの文脈を与えようとしました。答えを教えていただきありがとうございます。 – Cyzanfar

2

更新:Googleは、1スクリプトにつき20トリガの制限があります。これは、このソリューションが20フォームレスポンス以下を生成するシナリオでのみ機能することを意味します。

最後に、これを考え出しました。

まず、複数選択肢のオプションを含むフォームを作成します。このコードは、フォームの最初の項目であることを前提としています。

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 
関連する問題