stepブロックを知ろう

基本のブロック構成

テンプレートを上から順に見ていくと、以下のようなブロック構成になっていることが分かります。フォームの現在のステップに応じて、該当するブロックの内容のみが表示され、その他のステップの内容は表示されません。

入力画面(step)でエラーが発生した場合は再入力画面(step#reapply)へ遷移し、エラーがなければ確認画面(step#confirm)へ遷移します。その後、確認画面から送信すると完了画面(step#result)へ遷移します。

Twigテンプレート例では入力画面と再入力画面を分けず、エラーがある場合も入力画面(step)内にメッセージを表示します。

なお、標準テンプレートでもTwigテンプレート例と同様に、再入力画面(step#reapply)を設けない構成にすることが可能です。

Formモジュールにおけるstepブロックの構成


<!-- BEGIN_MODULE Form -->

<!-- BEGIN step -->
(中略:はじめの入力画面)
<!-- END step -->

<!-- BEGIN step#reapply -->
(中略:エラーがあったときの再入力画面)
<!-- END step#reapply -->

<!-- BEGIN step#confirm -->
(中略:送信前の内容確認)
<!-- END step#confirm -->

<!-- BEGIN step#result -->
(中略:送信後の完了通知)
<!-- END step#result -->

<!-- END_MODULE Form -->
{% set form = module('V2_Form') %}

{% if form.step == 'step' %}
(中略:はじめの入力画面 or エラーがあったときの再入力画面)
{% endif %}

{% if form.step == 'confirm' %}
(中略:送信前の内容確認)
{% endif %}

{% if form.step == 'result' %}
(中略:送信後の完了通知)
{% endif %}

次に表示するステップ操作の仕組み

基本的に、サンプルテンプレートを元に編集を加えるだけで利用することができます。そのため、以下の内容について編集する事はあまり多くはありませんが、どこでその記述をしているかについて説明します。


再入力画面( step#reapply )のHTMLソース

再入力画面( step#reapply )のHTMLソース


エラー時に表示されるstepの指定

GET, POSTの2通りの方法で指定が可能です。

  • form要素のaction属性に?step=reapplyを指定(GET)
  • input要素のname属性にerror、value属性にreapplyを指定(POST)

どちらか一方の指定だけで大丈夫です。エラーなどがあった場合は、ここで指定されたstepが表示されます。

次に表示したいstepの指定

HTMLのinput要素のname属性にstepvalue属性にconfirmと記述しています。ここに次に表示したいstepの名前を入力します。エラーなどがなければ、ここで指定されたstepが表示されます。

例の場合では再入力の内容にエラーがあれば再入力画面( step#reapply )に戻ってきて、エラーがなければ確認画面( step#confirm )に遷移するという記述になります。