Sitecore Forms を利用する際に、ロジックという仕組みが用意されています。これを利用することで、フォームの解答率を上げるために不要な質問を表示しない、などの実装を開発なしで実装することができます。
ロジックの確認
フォーム作成をしている画面のメニューに Logic のアイコンが配置されています。上にある6つのアイコンのうち右から2つ目です。
アイコンをクリックすると、ロジックを追加する画面に切り替わります。右上には Add logic のボタンが配置されています。
フォームの項目を追加する
前回、作成をしたフォームではロジックで処理をするには少し物足りないので項目を変更していきます。2 ページ目に項目として 3 つの選択肢を表示するように変更してみます。
ロジックの追加
質問項目を増やしたところで、質問1の項目がチェックされている場合に2ページ目で表示されるのかどうか?を制御するロジックを追加していきます。
まず Add logic のボタンをクリックすると、空っぽのルールが表示されます。
一番最初のフィールドでは、ロジックの対象にするための項目を選択することができます。
質問項目を選択すると、そのフィールドで利用している選択肢を確認することができます。
例えば、Content を選択した時は Content のフィールドを表示する、というルールを作成する場合は以下のように設定をします。
上記の設定のあと、実際にプレビューで項目を選択した場合、そうではない場合での動作を確認してみます。
選択をした場合に、次のページで項目が表示されているのがわかります。
用意されているロジック
ロジックで用意されている項目は以下の通りです。
- ルールに関しては、フィールドに対する項目を対象に
- is equal to
- is not equal to
- is empty
- is not empty
- アクションに関しては
- Hide field
- Show field
- Make a field required
- Make a required field optional
上記の組み合わせとなります。このロジックは同じページでも表示、非表示のアクションは有効になります。
ページ内の表示・非表示の制御
例えば車を持っていますか?の質問で Yes を選択した時にメーカーのリストを表示するという作り方も可能です。この場合、下記のようにチェックボックスを配置、リストでメーカーを選択できるようにします。
車を持っている場合にチェックした場合に、メーカー一覧を表示するようにロジックを作成します。
プレビューで動作確認をすると、チェックをすると項目が表示されていることを確認することができます。
まとめ
フォームに対してロジックを追加することで、回答して欲しい質問だけを表示したり、関連する情報を追加してもらうなど、フォームの最適化を行うことが可能になります。これにより回答している人も最低限の項目の回答だけという提供が可能になります。そして、フォームを提供する側は必要な項目を表示、非表示の部分を開発することなく実装することが可能となります。