無料で利用できるGoogleフォーム、活用の幅も広くて大変便利でありがたいツールですよね。
先般、Googleフォームの初期値を動的に設定する仕組みを手掛ける機会がありましたので、その作業メモです。
回答内容の初期設定は一種類の回答のみ
Googleフォームは、各項目にあらかじめ回答内容を初期設定しておくことができますが、当然ですが通常の手順では一種類の回答しか設定できません。
[参考] フォームを他のユーザーに送信する – 回答を事前入力したフォームを送信する
https://support.google.com/docs/answer/2839588?src=soctw
初期設定を複数にしたい場合は・・・
今回、「Webページからリンクしているアンケートフォームに、回答者の会員IDをあらかじめ初期設定しておきたい」という、1つのアンケートフォームに対して回答者分の初期設定が必要となる要望がありました。
リンク元のWebページ内で会員IDを取得できる仕組みだったこともあり、それなら動的に設定できるのでは?と回答内容を初期設定したGoogleフォームのURLを再確認すると、下記のような形になっていました。
https://docs.google.com/forms/d/e/******/viewform?usp=pp_url&entry.******=会員ID
(******はフォームや項目のID)
これならいける!
アンケートフォームへのリンクに、取得した会員IDを埋め込んだURLを設定するよう処理を追加するだけでOKでした。
ちなみに、複数の項目に初期設定する場合は&で追加できます。
(例)
https://docs.google.com/forms/d/e/******/viewform?usp=pp_url&entry.******=会員ID&entry.******=会員氏名
全項目を初期設定した状態のGoogleフォームURLを最初に発行しておくと、何かと便利かもしれません。
サンプルフォーム
サンプルとして、アンケートフォームを作成してみました。Wordpress用のコードになりますが、リンク元のページタイトルを初期設定しています。
$title = get_the_title(); echo <<<EOD <div id="enq-block"> <p class="catch">アンケート</p> <p><a href="https://docs.google.com/forms/d/e/1FAIpQLScB1Phczob1Om3Gx9dkzXmjEp2qlO0N9hDngE-m-ssJ38tJXA/viewform?usp=pp_url&entry.1521812545={$title}" target="_blank" rel="noopener">クリックするとアンケートフォームを表示します</a></p> </div> EOD; [myphp file='temp-enquete']
ちなみに、下記の記事にも同じコードを埋め込んでありますので、あわせてご確認ください。
「記事タイトル」が替わっているのがご確認いただけまます。
【不動産の「コラム型」ホームページで、集客力抜群のコラムを書く方法】
https://www.system8.co.jp/contents/1490/
最後に
いや、こういうアンケートなら本来ページに埋め込むべきでは……というご意見はあるかと思われますが、あくまでも今回はGoogleフォームの活用例ということでご理解いただけるとありがたいです……サンプルってことで……。
(本当にWordpress上でアンケートフォームを設置するならContact Form 7使ってページに埋め込みます……)