メールフォームプラグインV1.20(その6・チェックボックスの追加)

今日は、メールフォームにチェックボックス(<input type="checkbox"…>)を追加する方法を解説します。

1.メールフォームのテンプレートへのタグの追加

まず、メールフォームのテンプレート(インデックス・テンプレートとして作成したもの)に、チェックボックスのフィールドを追加します。

これは通常のフォームの通りです。
1行のテキストを入力する欄は、以下のようなタグで追加することができます。

<input type="text" name="フィールド名" value="チェックがオンのときにCGIに送信する値" />

また、初期状態でチェックをオンにしておくなら、以下のように「checked="checked"」の属性も入れます。

<input type="text" name="フィールド名" value="チェックがオンのときにCGIに送信する値" checked="checked" />

なお、フィールド名は自由に指定できますが、メールフォームプラグインの内部で使っている名前と重複しないようにする必要があります。
フィールド名の制限は、テキスト入力欄の追加のエントリーを参照してください。

2.送信前確認等のテンプレートへのタグの追加

送信前確認/送信エラー等のテンプレートでは、メールフォームのチェックボックスの状態を反映することが必要になります。

これは、GetQueryParamプラグインの「MTIfQueryParam」という条件タグで行うことができます。
MTIfQueryParamタグは、フォームのフィールドの値が、ある値に一致している時のみ、タグの内側を出力する働きをします。書き方は以下のようになります。

<MTIfQueryParam name="フィールド名" value="検査する値">
フィールドの値が検査する値に等しいときに出力する内容
</MTIfQueryParam>

メールフォームでのチェックボックスの状態を、送信前確認等のページに反映するようにするには、以下のような書き方をします。

<input type="text" name="フィールド名" value="チェックがオンのときにCGIに送信する値"<MTIfQueryParam name="フィールド名" value="チェックがオンのときにCGIに送信する値"> checked="checked"</MTIfQueryParam> />

3.例

メールフォームに、「要返信」というチェックボックスを追加したいとします。
また、チェックがオンのときには、メールフォームプラグインのCGIに「1」という値を渡したいとします。
この場合、メールフォームのテンプレートには、以下のようなタグを入れます。

<p>
<input type="checkbox" name="mail_require_reply" value="1" /> 要返信
</p>

また、送信前確認のテンプレートや送信エラーのテンプレートには、以下のようなタグを入れます。

<p>
<input type="checkbox" name="mail_require_reply" value="1"<MTIfQueryParam name="mail_require_reply" value="1"> checked="checked"</MTIfQueryParam> /> 要返信
</p>

4.前後のエントリー

メールフォームプラグインは解説が長いので、エントリーを複数に分けています。
前後のエントリーは以下のリンクで参照することができます。

前のエントリー(その5・テキストの入力欄の追加)
次のエントリー(その7・ラジオボタン/セレクトの追加)

また、サイドバーの「関連するエントリー」の箇所に、メールフォーム関連のエントリーの一覧が表示されていますので、そちらもご利用ください。