チェックボックスの追加
メールフォームにチェックボックス(<input type="checkbox"...>)を追加する方法を解説します。
メールフォームのテンプレートへのタグの追加
まず、メールフォームのテンプレート(インデックス・テンプレートとして作成したもの)に、チェックボックスのフィールドを追加します。
1行のテキストを入力する欄は、以下のようなタグで追加することができます。
<input type="text" name="フィールド名" value="チェックがオンのときにCGIに送信する値" />
また、初期状態でチェックをオンにしておくなら、以下のように「checked="checked"」の属性も入れます。
<input type="text" name="フィールド名" value="チェックがオンのときにCGIに送信する値" checked="checked" />
なお、フィールド名は自由に指定できますが、メールフォームプラグインの内部で使っている名前と重複しないようにする必要があります。
フィールド名の制限は、テキストボックスの追加の記事を参照してください。
送信前確認等のテンプレートへのタグの追加
送信前確認/送信エラー等のテンプレートでは、メールフォームのチェックボックスの状態を反映することが必要になります。
これは、GetQueryParamプラグインの「MTIfQueryParam」という条件タグで行うことができます。 MTIfQueryParamタグは、フォームのフィールドの値が、ある値に一致している時のみ、タグの内側を出力する働きをします。書き方は以下のようになります。
<MTIfQueryParam name="フィールド名" value="検査する値">
フィールドの値が検査する値に等しいときに出力する内容
</MTIfQueryParam>
メールフォームでのチェックボックスの状態を、送信前確認等のページに反映するようにするには、以下のような書き方をします。
<input type="text" name="フィールド名" value="チェックがオンのときにCGIに送信する値"<MTIfQueryParam name="フィールド名" value="チェックがオンのときにCGIに送信する値"> checked="checked"</MTIfQueryParam> />
例
メールフォームに、「要返信」というチェックボックスを追加したいとします。
フィールドの名前は「mail_require_reply」にするものとします。
また、チェックがオンのときには、メールフォームプラグインの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>