web-dev-qa-db-ja.com

Googleフォームの非表示フィールド

フォームの送信ごとに一意のIDを追加しています。今、私はそのIDを最初のフィールドにし、このフィールドを変更しないようにユーザーに求めるヘルプテキストとともに、IDを事前に入力しました。このオプションをユーザーに表示できないオプションはありますか?

38
Kira

ユーザーがフォームに入力する前にプログラムで一意のIDを割り当てる方法にのみ興味があると思います。

いいえ、Google Formsは、HTMLフォームにあるような隠しフィールドを直接サポートしていません。唯一のオプションは カスタムスタイリング ルートであるように見えますが、これはすでに知っています。

うまく機能しない2つの有望なアイデアを以下に示します。

  1. 削除された質問に事前入力します。フォームから質問を削除すると、回答スプレッドシートに残ります-残念ながら、Formsは削除された質問の値を抑制します事前に入力されたURLで表示されます。そうしないと、一意のIDをだまして送信することができます。 (これは賢い回避策かもしれないと思ったが、うまくいかなかったことに失望した。)

  2. スキップされたページに質問を事前入力する12番目のページに質問を設定して、ライブフォームがスキップするように設定できます。また、質問の事前入力URLを生成することもできます。これまでのところ、非常に良い-しかし、ユーザーが実際にそのページに移動しない場合、事前に入力された応答は送信されません。


1古いフォーラムのこのトピックに関する 前の議論 の間にこのアイデアを主張した@AdamLに感謝します。

25
Mogsdad

Googleフォームから直接これを行うことはできませんが、回避策はあります。

  1. 非表示フィールドを含むGoogleフォームを作成します。
  2. Google Wepアプリを作成します( https://developers.google.com/apps-script/guides/web
  3. 次のコードをデフォルトのCode.gsファイルに挿入します。 (これは基本的にindex.htmlテンプレートを開きます。)

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

  4. フォームのソースコードで新しいindex.htmlファイルを作成します。

  5. _style="display:none"_をその囲む_<div>_に追加して、入力フィールドを非表示にします
  6. <?= your_gscript_code() ?>を使用して、テンプレート情報を_<input value="">_フィールドに挿入します
  7. Webアプリを公開し(Webアプリの公開/展開...)、完了です。これで、目的のフィールドが非表示になり、非表示の値が事前に入力されたフォームへのリンクができました。

このソリューションを使用すると、カスタムスタイルを適用でき、Googleがホストするフォームを維持しながら、他の不要なhtml要素を削除することもできます。

6
ezsi

私はあなたの問題の解決策を見つけたと思います。フォームデータが送信されるシート上のスクリプトは、フォーム送信時にトリガーできます。その後、送信された各行の「範囲」をコピーして増分できます。

*編集、サンプルコードが要求されました。このコードを機能させるには、Googleアプリスクリプトのリソースメニューを使用して「トリガーをインストール」し、「フォーム送信時に」「スプレッドシートから」を使用する必要があります。私がやっていることを次のスニペットに煮詰めました。

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

最善の方法は、右上隅の設定に移動して[電子メールアドレスの収集]をクリックすることです。収集されませんが、検証機能があり、電子メールでフィルター処理された短い回答の質問に回答するように求めます。

Exp IMG 1

Exp IMG 2

0
Mrs.PizzaGuy