MailForm

対応バージョン:MovableType8、MovableType9

ラジオボタン/セレクトの追加

更新日:2025.12.15

メールフォームにラジオボタン(<input type="radio"...>)またはセレクト(<select...>~</select>)を追加する方法を解説します。

GetQueryParamプラグインのインストール

ラジオボタンやセレクトを使う場合、「GetQueryParam」というプラグインが必要になります。
2024年2月1日以降にご購入いただいた場合は、MailFormプラグインに同梱されています。
それ以前にご購入いただいている場合にはテクニカルサポートまでお問い合わせください。

ダウンロードしたファイルを解凍すると、「GetQueryParam」フォルダができます。
このフォルダを、Movable Typeの「plugins」ディレクトリにアップロードします。

送信値/表示値/IDのリストの作成

フォームにラジオボタンやセレクトを入れるには、それぞれの選択肢に対応するタグに、「送信」ボタンがクリックされたときにCGIに送信する値(以後「送信値」と略)と、フォームに表示する値(以後「表示値」と略)を指定することが必要です。

ラジオボタン

<input type="radio" name="フィールド名" id="フィールドのID" value="送信値" />表示値

セレクト(のoptionタグ)

<option value="送信値">表示値</option>

メールフォームにラジオボタンやセレクトを入れるには、まず送信値と表示値のリストを作ることから始めます。
このリストは、GetQueryParamプラグインの「MTSetParamList」というコンテナタグで作成します。
以下のように、このタグのコンテナの中に、送信値と表示値を「|」で区切ったものを書きます。
また、「list_name」というアトリビュートで、リストの名前も指定します。

<MTSetParamList list_name="リスト名">
送信値1|表示値1
送信値2|表示値2
...
送信値n|表示値n
</MTSetParamList>

さらに、ラジオボタンではそれぞれにIDを振ることもできます。
その場合は、以下のようにして、送信値/表示値/IDを「|」で区切ってリストを作ります。

<MTSetParamList list_name="リスト名">
送信値1|表示値1|ID1
送信値2|表示値2|ID2
...
送信値n|表示値n|IDn
</MTSetParamList>

なお、MTSetParamListタグの部分は、メールフォームのテンプレートと、送信前確認/送信エラーのテンプレートに入れます。 同じものをこれらの3つのテンプレートに入れると、リストを修正する必要が出た際に、3つのテンプレートすべてを修正しなければならなくなり、効率が悪いです。 そこで、MTSetParamListタグの部分はテンプレート・モジュールに入れておき、MTIncludeタグを使って各テンプレートに組み込むようにすると良いでしょう。

input/selectタグの出力

上記で送信値と表示値のリストを作成しましたが、そのリストを利用して、inputやselectのタグを出力します。
リストから送信値と表示値を取り出すには、GetQueryParamプラグインの「MTGetParamList」というコンテナタグを使います。
「list_name="リスト名"」のアトリビュートを指定して、値を取り出すリストを指定します。
また、送信値/表示値/IDは、それぞれ以下のタグで出力することができます。

また、送信値/表示値/IDは、それぞれ「MTGetParamValue」「MTGetParamString」「MTGetParamID」という変数タグで出力することができます。

MTGetParamListタグ等を使って、ラジオボタンやセレクトを出力するには、以下のようにタグを組み合わせます。

・ラジオボタン

<MTGetParamList list_name="リスト名">
<input type="radio" name="フィールド名" id="<$MTGetParamID$>" value="<$MTGetParamValue$>" /><$MTGetParamString$>
</MTGetParamList>

・セレクト

<select name="フィールド名">
<MTGetParamList list_name="リスト名">
<option value="<$MTGetParamValue$>"><$MTGetParamString$></option>
</MTGetParamList>
</select>

特定の選択肢をオンにする

ラジオボタンやセレクトの選択肢の中で、特定のものをオンにした状態にしておきたいこともあります。
メールフォームでは、最初の選択肢をオンにすることが多いと思います。
MTGetParamListタグのコンテナの中で、「MTGetParamListHeader」という条件タグを使うと、リスト内の最初の項目かどうかを判断することができます。
以下のように書くことで、ラジオボタンやセレクトの最初の選択肢をオンにすることができます。

・ラジオボタン

<input type="radio" name="フィールド名" id="<$MTGetParamID$>" value="<$MTGetParamValue$>"<MTGetParamListHeader> checked="checked"</MTGetParamListHeader> /><$MTGetParamString$>

・セレクト(のoptionタグ)

<option value="<$MTGetParamValue$>"<MTGetParamListHeader> selected="selected"</MTGetParamListHeader>><$MTGetParamString$></option>

メールフォームで、特定の送信値に対応する選択肢をオンにしておくこともできます。
それには、MTGetParamListタグのコンテナの中で、「<MTIfParamValue comp_value="オンにしたい選択肢の送信値">」という条件タグを使って、以下のように書きます。

・ラジオボタン

><input type="radio" name="フィールド名" id="<$MTGetParamID$>" value="<$MTGetParamValue$>"<MTIfParamValue comp_value="オンにしたい選択肢の送信値"> checked="checked"</MTIfParamValue> /><$MTGetParamString$>

・セレクト(のoptionタグ)

><option value="<$MTGetParamValue$>"<MTIfParamValue comp_value="オンにしたい選択肢の送信値"> selected="selected"</MTIfParamValue>><$MTGetParamString$></option>

また、送信前確認ページや送信エラーページでは、メールフォームで選択された項目をオンにする必要があります。
これは、MTGetParamListタグのコンテナの中で、「<MTIfParamValue param_name="フィールド名">」という条件タグを使って、以下のように書きます。

・ラジオボタン

<input type="radio" name="フィールド名" id="<$MTGetParamID$>" value="<$MTGetParamValue$>"<MTIfParamValue param_name="フィールド名"> checked="checked"</MTIfParamValue> /><$MTGetParamString$>

・セレクト(のoptionタグ)

<option value="<$MTGetParamValue$>"<MTIfParamValue param_name="selectタグのフィールド名"> selected="selected"</MTIfParamValue>><$MTGetParamString$></option>
<input type="radio" name="フィールド名" id="<$MTGetParamID$>" value="<$MTGetParamValue$>"<MTIfParamValue param_name="フィールド名"> checked="checked"</MTIfParamValue> /><$MTGetParamString$>

例えば、「赤」「青」「緑」の色を選べるようにしたいとします。
そのフィールド名を「mail_color」にし、また色のリストには「list_color」という名前をつけるとします。
セレクトで選択できるようにする場合、「メールフォーム共通部分」のテンプレートに、以下のようなタグを入れます。

<MTSetParamList list_name="list_color">
赤|赤
青|青
緑|緑 </MTSetParamList>
<p>色<br />
<select name="mail_color" id="mail_color">
<MTGetParamList list_name="list_color">
  <option value="<MTVar name="gp_value">"<MTIf name="mail_color" eq="$gp_value">
selected="selected"</MTIf>><MTVar name="gp_string"></option>
</MTGetParamList>
</select>
</p>

一方、ラジオボタンで選択できるようにしたいとします。
また、各ラジオボタンには「mail_color_red」「mail_color_blue」mail_color_green」のIDを割り当てたいとします。
この場合は、以下のようなタグを入れます。

<MTSetParamList list_name="list_color">
赤|赤|mail_color_red
青|青|mail_color_blue
緑|緑|mail_color_green
</MTSetParamList>
<p>色<br />
<MTGetParamList list_name="list_color">
<input type="radio" name="mail_color" id="<MTVar name="gp_id">" value="<MTVar name="gp_value">"<MTIf name="mail_color" eq="$gp_value"> checked="checked"</MTIf>><MTVar name="gp_string">
</MTGetParamList>
</select>
</p>

また、上記のセレクト/ラジオボタンで、「赤」を初期値にしたいとします。
この場合、「メールフォーム」のテンプレートに以下のタグを入れます。

<MTSetVar name="mail_color" value="赤">
前へ
プラグインTOP
次へ
test