拙著「WordPress Web開発逆引きレシピ」が発売されました。
WordPressの様々なカスタマイズについて、逆引きの形式で取り上げています。
PHP 7.0での動作確認も行っています。
メールフォームプラグインV2.0・その12(ラジオボタン/セレクトの追加)
メールフォームプラグインで、メールフォームにラジオボタン(<input type="radio"...>)またはセレクト(<select...>~</select>)を追加する方法を解説します。
1.GetQueryParamプラグインのインストール
ラジオボタンやセレクトを使う場合、「GetQueryParam」というプラグインが必要になります。
GetQueryParamプラグインは以下からダウンロードできます。
ダウンロードしたファイルを解凍すると、「GetQueryParam」フォルダができます。
このフォルダを、Movable Typeの「plugins」ディレクトリにアップロードします。
なお、旧版のメールフォームプラグインでもGetQueryParamプラグインを組み合わせていましたが、その時のプラグインよりバージョンアップしています(旧バージョンは1.11)。
旧バージョンを使っていた方は、新バージョンに差し替えてください。
2.送信値/表示値/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>
なお、このタグは、「メールフォーム共通部分」のテンプレートに入れます。
3.input/selectタグの出力
2.の手順で送信値と表示値のリストを作成しましたが、そのリストを利用して、inputやselectのタグを出力します。
リストから送信値と表示値を取り出すには、GetQueryParamプラグインの「MTGetParamList」というコンテナタグを使います。
「list_name="リスト名"」のアトリビュートを指定して、値を取り出すリストを指定します。
また、送信値/表示値/IDは、それぞれ以下のタグで出力することができます。
出力したい値 | タグ |
---|---|
送信値 | <MTVar name="gp_value"> |
表示値 | <MTVar name="gp_string"> |
ID | <MTVar name="gp_id"> |
MTGetParamListタグ等を使って、ラジオボタンやセレクトを出力するには、以下のようにタグを組み合わせます。
・ラジオボタン
<MTGetParamList list_name="リスト名"> <input type="radio" name="フィールド名" id="<MTVar name="gp_id">" value="<MTVar name="gp_value">"<MTIf name="フィールド名" eq="$gp_value"> checked="checked"</MTIf> /><MTVar name="gp_string"> </MTGetParamList>
・セレクト
<select name="フィールド名"> <MTGetParamList list_name="リスト名"> <option value="<MTVar name="gp_value">"<MTIf name="フィールド名" eq="$gp_value"> selected="selected"</MTIf>><MTVar name="gp_string"></option> </MTGetParamList> </select>
4.初期値の設定
セレクト/ラジオボタンを表示する際に、選択肢の1つを選択した状態にしておくこともできます。
それには、「メールフォーム」のテンプレートに、以下のようなタグを入れます。
<MTSetVar name="フィールド名" value="選択する項目の送信値">
5.例
例えば、「赤」「青」「緑」の色を選べるようにしたいとします。
そのフィールド名を「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="赤">
Movable Typeのプラグイン集「MT Cloud Starter Kit」をぜひご利用ください
max
いつも利用させていただき、ありがとうございます。
ラジオボタンやテキストフィールド等、追加した本文の内容を受信するにはどのようにしたら良いでしょうか?
モジュールテンプレート(mail_body:メール本文)の記述方法がわかりません。
壱からmaxへの返信
>maxさん
こんにちは。
プラグインご利用ありがとうございます。
ご質問の件ですが、独自にメールフォームに追加したフィールドの値は、「<MTMailPreviewExtParam name="フィールド名>」のタグで表すことができます。
なお、サンプルのテンプレートセットの「Movable Type標準テンプレート用(各種機能使用)」に、実際のサンプルがありますので、そちらも参照してください。
maxからmaxへの返信
こんなに早くご回答いただけるとは!
ありがとうございました。
うまくいきました。
感謝です!!
nog
MTのプラグイン表示で、ヴァージョンが1.11とでています。
内容は新しくなっていると思いますが。
壱からnogへの返信
>nogさん
こんにちは。
バージョン番号の表記の修正が抜けている点をご指摘いただき、ありがとうございました。
修正してアップロードしなおしておきました。
nb
遅くにすいません。お世話になります。
メールフォーム共通部分で、タイトル(mail_subject)部分をプルダウン形式で選択できるようにするにはどのようにすればよいか教えていただけるとありがたいです。
よろしくお願いします。
壱からnbへの返信
>nbさん
こんにちは。
タイトル(mail_subject)も、この記事の通りの方法で、プルダウン(セレクト)にすることができます。
nbからnbへの返信
早速ありがとうございます!
プルダウン形式にはなんとかなったのですが、
<p id="mail-form-subject">
<label for="mail_subject">タイトル(全角)</label><br />
<input id="mail_subject" name="mail_subject" size="30" value="<$MTMailPreviewSubject$>" style="width : 90%;" />
<MTSetParamList list_name="type">
---選択してください---|---選択してください---
aaa|aaa
bbb|bbb
ccc|ccc
ddd|ddd
<MTSetVar name="type" value="---選択してください---">
</MTSetParamList>
<select name="type" id="mail_subject">
<MTGetParamList list_name="type"><option value="<MTVar name="gp_value">"<MTIf name="type" eq="$gp_value"> selected="selected"</MTIf>><MTVar name="gp_string"></option>
</MTGetParamList>
</select>
</p>
としたところ、
タイトル欄の下に1行のテキストフィールド、その下にプルダウンとなります。また、プルダウンの枠が左にずれてしまう(他のフィールドとそろわない)のですが、どうすればいいでしょうか?:pp_02.gif:
壱からnbへの返信
>nbさん
こんにちは。
1.「<input id="mail_subject" name="mail_subject" size="30" value="<$MTMailPreviewSubject$>" style="width : 90%;" />」の行を削除してください。
2.selectタグは「<select name="mail_subject" id="mail_subject">」にしてください。
3.「<MTSetVar name="type" value="---選択してください---">」の行は「</MTSetParamList>」の後に移動してください。
nbからnbへの返信
壱 さま
お忙しいのにありがとうございます。
ご指示のように修正しなんとか形になりました。
現在、少し解決できていない箇所がありますので、何度も大変恐縮ですが、ご教示くだされば幸いです。
①プルダウンのフィールドだけ、他の入力フィールドに比べて左によっています。できればあわせたいです。
②テスト送信したところ、送信確認画面で、選択したものが反映されず、---選択してください---となります。
③共通部分や送信確認テンプレートで、郵便番号というテキストフィールドを追加し、郵便番号:で指定しましたが、送信確認画面では、郵便番号:空欄(なにも反映されていない)状態になります。
④テスト送信を実行し、メールソフト上は日本時間で表示されているものの、印刷するとマイナス9時間表示となります。これはどこを直せばよいでしょうか?(このメールフォームの仕様とは違うかもしれませんが)
よろしくお願いします。
壱からnbへの返信
>nbさん
こんにちは。
1.について
スタイルシートが関連していると思われますので、そちらのメールフォームを拝見しないと何とも言えません。
2.について
先ほどのコメントの3.に誤りがありました。
「メールフォーム共通部分」のテンプレートから3.で書いた行を削除し、「メールフォーム」のテンプレートの先頭に以下のタグを追加してください。
<MTSetVar name="mail_subject" value="---選択してください---">
3.について
http://www.h-fj.com/blog/archives/2008/02/13-105945.phpの解説を参照してください。
4.について
このプラグインでは、メールの時刻については何も操作していません。
サーバーの設定や、メールソフトの設定に依存する問題ではないかと思います。
3.について
なかた
こんにちは、壱様
なかたと申します。
下記URLのページでマニュアル通り色々と追加しました。貴重な情報の公開ありがとうございます。確認画面に進むとセレクトボックスで選んだ項目が初期値の赤に戻ってしまいます。(確認画面スタイルシート適用していません、見えづらくて申し訳ありません)
入力画面で例えば「緑」を選んだら確認画面でも「緑」と表示するにはどうすればいいのでしょうk?ご指導いただけましたら幸いです。
http://atelier-nakata.net/web-design/mailform.html
壱からなかたへの返信
>なかたさん
こんにちは。
プラグインご利用ありがとうございます。
ご質問の件ですが、この記事の「4.初期値の設定」と「5.例」を良くお読みいただいて、テンプレートを見直してみてください。
壱様
「4.初期値の設定」と「5.例」は確認しました。伝え方が悪かったのかもしれません。解決できませんでしたので再度ご対応をお願いします。
送信メールフォーム「http://atelier-nakata.net/web-design/mailform.html」では初期値の設定を出来ています。を「mail_common:メールフォーム共通部分」のテンプレートで設定しています。
送信メールフォーム「http://atelier-nakata.net/web-design/mailform.html」で仮に「赤」を選べば、メール確認画面の表の中では「赤」になります。
しかしその確認画面のメール修正フォームでは「」にどのような対応をすれば送信フォームで選んだ「赤」を表示できるのでしょうか?
理解力がなくご面倒かもしれませんが、ご対応をお願いします。
なかた
壱様、恐れ入ります。先ほど初期値設定の「MTSetVar name="mail_color" value=""」を外したところ、メール確認画面の修正フォームでは選んだ項目になっていました。
「MTSetVar name="mail_color" value=""」は送信フォーム(入り口)のみに設定すればいいのですね?
壱からなかたへの返信
>なかたさん
こんにちは。
お書きになったとおり、MTSetVarタグは最初に表示されるページ(「メールフォーム」テンプレート)にのみ入れてください。
なかた
壱様
何度もお問い合わせ申し訳ありません。「http://atelier-nakata.net/web-design/mailform.html」から確認するとSafariのみエラーが出ず進みますが、IEやFirefox・Operaでは「設定を読み込むのに失敗しました」とエラーになります。(macのみで確認していたため)これはまた、どこかが間違っているんですね、、、。お手数おかけいたしますがご連絡くださいませ
壱からなかたへの返信
>なかたさん
こんにちは。
「メールフォーム共通部分」のテンプレートで、以下のタグの最後の「" />」の前に、余分な改行が入っているようです。
その改行を削除してください。
<input type="hidden" name="mail_setting" value="<$MTGetVar name="mail_setting">" />
なかた
今のところ解決しているかと思います。また、不明点があればご質問させていただきます。本当に快い対応をありがとうございました。
やま
お世話になります。
ラジオボタンを利用して、ブログ記事の全ページ末尾にちょっとしたアンケート代わりとして設置中なのですが、残念ながらこのままだと、どのページの記事に対する評価なのかわかりません。
隠しフィールド(というのでしょうか)を利用して、ページタイトル等をメール本文テンプレートに送る方法を教えていただけるとたすかります。
お忙しいここと思いますがよろしくお願いします。
壱からやまへの返信
>やまさん
こんにちは。
ご質問の件について、記事を書きました。
http://www.h-fj.com/blog/archives/2008/12/26-101626.php
やまからやまへの返信
素早い対応にびっくりです。
おかげさまでうまくいきました。
ありがとうございました。
kaku
メールフォーム共通部分で、タイトル(mail_subject)部分をプルダウン形式で選択できるようにしているのですが、mail_body:メール本文とmail_preview:送信確認に反映させるにはどうしたらいいのでしょうか?
壱からkakuへの返信
>kakuさん
こんにちは。
プラグインご利用ありがとうございます。
現状のプラグインでは、タイトル(mail_subject)は変数に設定していません。
そこで、送信確認ページにタイトルの選択を反映させるには、メールフォーム共通部分のテンプレートの先頭に以下のタグを入れて、タイトルを変数に設定してから、記事の手順2以降を行ってください。
<mt:SetVarBlock name="mail_subject"><$mt:MailPreviewSubject$></mt:SetVarBlock>
なお、メール本文テンプレートでは、<mt:MailPreviewSubject$gt;タグで、送信されたタイトルを出力することができます。
kakuからkakuへの返信
早速のご回答ありがとうございます!
なんとかできました!!
ため
こんにちは。
プルダウンメニューを設定しました。
「1枚」、「2枚」という項目のプルダウンなのですが、
「2枚」を選択した後、確認画面上でも「2枚」と表示されいるのですが、
確認画面下のメールフォームのプルダウンでは「1枚」に戻ってしまいます。
これを回避するにはどうしたらよいのでしょうか。
またデフォルトで設定してあった「本文」が不要なので
削除しましたが、送信画面で「本文が正しく入力されていない」旨のエラーが出てしまいます。
こちらも回避する方法を教えてください。
お手数をおかけしますがよろしくお願いいたします。
壱
>ためさん
こんにちは。
ご質問の前半の件ですが、テンプレートタグの組み方をどこかでミスしているのではないかと思います。
もう一度この記事をよくお読みいただいて、タグを確認してみてください。
また、後半の件ですが、デフォルトでは本文/タイトル/名前のフィールドが入力必須になっています。
入力必須のフィールドを変える方法は、以下のページを参照してください。
http://www.h-fj.com/blog/archives/2008/02/29-120141.php
ためから壱への返信
早速のご回答ありがとうございました。
例をコピーし書き換える箇所のみ変更したつもりなのですが、
どうもうまく行きません。
以下のように組みました。
これ以外にも変更しなくてはならない箇所があるのでしょうか。
お手数をおかけしますがよろしくお願いいたします。
壱から壱への返信
>ためさん
こんにちは。
タグの組み方は問題ないようです。
とすれば、テンプレート内でのタグを入れる位置に問題があるのではないかと思われます。
ちなみに、サンプルテンプレートの「Movable Type 4.2標準テンプレート用(各種機能使用)」に、セレクトを使う例が入っています。
そちらのサンプルテンプレートをインストールして、テンプレートの書き方を見てみると良いかと思います。
ためから壱への返信
ご回答ありがとうございました。
いろいろ試して見ます。
ちなみにこの現象はFirefox3で起こっています。
IE6、Safariでは問題ありませんでした。
ためから壱への返信
お世話になっております。
こちらの件、やはり原因がわかりませんでした。
一部ブラウザで、確認画面でプルダウンが初期値に戻ってしまいます。
ですので、確認画面上でフォームを無くしたい(入力内容に間違いがある場合は、ブラウザ上の戻るボタンをご利用くださいというナビゲーションにしたい)と思っているのですが、
何か方法はございますでしょうか。
お手数をおかけしますがどうぞよろしくお願いいたします。
> >ためさん
>こんにちは。
>
>タグの組み方は問題ないようです。
>とすれば、テンプレート内でのタグを入れる位置に問題があるのではないかと思われます。
>
>ちなみに、サンプルテンプレートの「Movable Type 4.2標準テンプレート用(各種機能使用)」に、セレクトを使う例が入っています。
>そちらのサンプルテンプレートをインストールして、テンプレートの書き方を見てみると良いかと思います。
壱
>ためさん
こんにちは。
確認画面からフォームをなくすことは可能ですが、それ以前にフォームで入力された値がサーバーに正しく送信できていないようですので、フォームをなくしても問題は解決しないと思います。
なお、確認画面からフォームをなくす手順は、大まかには以下のようになります。
1.「mail_preview:送信確認」のテンプレートから、「<$MTIncludeMailFormCommon$>」タグを削除します。
2.1.のタグの代わりに、「mail_common:メールフォーム共通部分」のテンプレートの内容を、「mail_preview:送信確認」テンプレートに貼り付けます。
3.2.で貼り付けた部分のうち、<form>~</form>タグの間を残し、それ以外を削除します。
4.<form>~</form>タグの間で、入力用の要素(inputタグ)などを残し、それ以外の要素をすべて削除します。
5.inputタグの要素は、typeをすべてhiddenに置き換えます。
6.selectやtextareaなどのタグも、<input type="hidden"・・・>」のタグに置き換えて、メールフォームで入力された内容を、サーバーに送信できるようにします。
ためから壱への返信
度々すみません。
確認画面のテキスト部分はきちんと選択されたものが
反映されているのですが、
プルダウンのみ元にもどっている状態です。
ですので、再度確認画面でプルダウンを選択した上で、
送信しないといけません。
このような場合でもフォームを無くしても無理なのでしょうか。
どうしても使いたい機能ですので、
何とか解決したいです。
お手数をおかけします。
> >ためさん
>こんにちは。
>
>確認画面からフォームをなくすことは可能ですが、それ以前にフォームで入力された値がサーバーに正しく送信できていないようですので、フォームをなくしても問題は解決しないと思います。
>
>なお、確認画面からフォームをなくす手順は、大まかには以下のようになります。
>
>1.「mail_preview:送信確認」のテンプレートから、「」タグを削除します。
>2.1.のタグの代わりに、「mail_common:メールフォーム共通部分」のテンプレートの内容を、「mail_preview:送信確認」テンプレートに貼り付けます。
>3.2.で貼り付けた部分のうち、~タグの間を残し、それ以外を削除します。
>4.~タグの間で、入力用の要素(inputタグ)などを残し、それ以外の要素をすべて削除します。
>5.inputタグの要素は、typeをすべてhiddenに置き換えます。
>6.selectやtextareaなどのタグも、」のタグに置き換えて、メールフォームで入力された内容を、サーバーに送信できるようにします。
壱から壱への返信
>ためさん
こんにちは。
有償で良ければ、私がそちらのサーバーで作業して、原因を探したいと思います。
ご希望であれば、メールフォームでご連絡ください。
駆出しデザイナー
ラジオボタンで以下の3項目に分けて、選択方式にしました。
【ご連絡方法】
○携帯電話 ○TEL ○e-mail
メールの確認画面では、フォームのラジオボタンの選択部分は通常通り選択されているのですが、確認の項目の部分では項目に何も表示されません。
ファーム共通部分
<MTSetParamList list_name="list_apoint">
携帯電話|携帯電話|mail_apoint_mobile
TEL|TEL|mail_apoint_tel
E-Mail|E-Mail|mail_apoint_email
</MTSetParamList>
<p>ご連絡方法</p> </td>
<td bgcolor="#ffffff">
<p class="form">
<MTGetParamList list_name="list_apoint">
<input type="radio" name="mail_apoint" id="<MTVar name="gp_id">" value="<MTVar name="gp_value">"<MTIf name="mail_apoint" eq="$gp_value"> checked="checked"</MTIf>>
<MTVar name="gp_string">
</MTGetParamList>
</select>
</p>
メール本文
ご連絡方法
携帯電話:<$MTMailPreviewExtParam name="mail_apoint_mobile"$>
TEL :<$MTMailPreviewExtParam name="mail_apoint_tel"$>
EMAIL:<$MTMailPreviewExtParam name="mail_apoint_email"$>
送信確認
<p>ご連絡方法</p>
<p>携帯電話</p>
<p><$MTMailPreviewExtParam name="mail_apoint_mobile"$></p>
<p>TEL</p><p><$MTMailPreviewExtParam name="mail_apoint_tel"$></p>
<p>E-MAIL</p><p><$MTMailPreviewExtParam name="mail_apoint_email"$></p>
以上、ご教授願えますでしょうか。
壱から駆出しデザイナーへの返信
>駆出しデザイナーさん
こんにちは。
いただいたメールフォーム共通部分テンプレートだと、メールフォームのCGIには、「mail_apoint」の名前で、「携帯電話」「TEL」「E-Mail」のどれかの値が送信されます。
したがって、メール本文や送信確認のテンプレートでは、以下のようにして、連絡方法を出力するようにします。
ご連絡方法:<MTMailPreviewExtParam name="mail_apoint">
ふじ
はじめまして。
お世話になります。
よろしくお願い致します。
メールフォーム プラグインを使用させて頂いています。
共通部分に<MTSetParamList>を用いたフォームを作ったのですが
<MTSetParamList> <MTGetParamList>
が 不明なタグ として 認識されていません。
サンプルのテンプレートをインストールした際にも
共通部分の
<MTSetParamList>
<MTGetParamLIst>
ともに不明なタグとなってしまっています。
一度 アンインストールして 再度インストールし直したいと思ったのですが、 アンインストール方法は FTPで削除するだけで良いのでしょうか?
お手数をおかけし申し訳ありませんが、教えて頂ければ幸いです。
よろしくお願い致します。
壱からふじへの返信
>ふじさん
こんにちは。
MTSetParamList/MTGetParamListタグは、GetQueryParamプラグインによって追加されます。
以下のページに従って、プラグインをインストールしてください。
http://www.h-fj.com/blog/archives/2008/02/19-134955.php
駆出しデザイナー
前回、ご回答ありがとう御座いました。
今回、また質問なのですが、フォームにプルダウン式のフィールドを追加したいと思っております。そのプルダウンの内容が、各ブログ記事のタイトルをリストとして並べたいのですが、一つ一つタイトルを記述していく方法ではなく、タイトルを自動的に取得する方法にし、ブログ記事が追加されると同時に、フォームのプルダウンメニューにも反映されるようにしたいです。このような事は可能でしょうか?
具体的には、どのようにしたら、すべてのブログ記事のタイトルを取得できるのかが、わからなくて困っております。
お忙しいところ何度も質問してすみませんが
ご教授をお願い致します。
ふじからふじへの返信
壱さま
早速ありがとうございました。
肝心のものをインストール 忘れておりました。
お手数をおかけし申し訳ありません。
ありがとうございました。
壱から駆出しデザイナーへの返信
>駆出しデザイナーさん
ブログ記事の一覧は、MTEntriesタグで出力することができます。
このタグのブロックを、MTSetParamListタグに入れるとよいでしょう。
例えば、以下のようにすると、送信値/表示値ともにブログ記事のタイトルになったリストができます。
<MTSetParamList list_name="リスト名">
<MTEntries lastn="0">
<MTEntryTitle>|<MTEntryTitle>
</MTEntries>
</MTSetParamList>
駆出しデザイナーから駆出しデザイナーへの返信
壱様
上記の通り記載したら、ブログ記事のタイトルがドロップダウンにて選択できるようになりました。
ここで、もう一つ追加の機能を付け加えたいのですが、それは、選択しない場合一番上にドロップダウンリストの先頭に「選択しない」という項目を付け加えたいのですが以下のように記述すると「選択しない」の項目が一個飛ばしで出てきてしまいます。ここの記述方法はどのようにするのでしょうか?
<MTSetParamList list_name="リスト名">
<MTEntries lastn="0">
選択しない|選択しない
<MTEntryTitle>|<MTEntryTitle>
</MTEntries>
</MTSetParamList>
ドロップダウンメニューでは
選択しない
タイトル1
選択しない
タイトル2
選択しない
タイトル3
選択しない
タイトル4
選択しない
タイトル5
・・・となってしまいます。
駆出しデザイナーから駆出しデザイナーへの返信
上記の件、以下のように記述することで解決致しました。
ご迷惑お掛けしました。
<MTSetParamList list_name="リスト名">
選択しない|選択しない
<MTEntries lastn="0">
<MTEntryTitle>|<MTEntryTitle>
</MTEntries>
</MTSetParamList>
kiki
はじめまして、本日mailformプラグインデビューしました。
早速カスタマイズとあれこれ試しておりますが、ラジオボタンで躓きました。↓該当箇所抜粋
各種機能付きテンプレート中の
<MTSetParamList list_name="sex_values">
男|男|mail_radio0
女|女|mail_radio1
</MTSetParamList>
や
ラジオボタン追加のサンプル
<MTSetParamList list_name="list_color">
赤|赤|mail_color_red
青|青|mail_color_blue
緑|緑|mail_color_green
</MTSetParamList>
もですが、「男」、「赤」など一番始めに書いた項目しか表示されません。並びを変えても同じ現象です。
対処方法をご伝授ください。
壱からkikiへの返信
>kikiさん
こんにちは。
ご質問の件ですが、問題が出ているテンプレートをお送りいただけないでしょうか。
kikiからkikiへの返信
早々のご返事、ありがとうございます。
その後も試しておりました…がやはり先頭の項目だけの表示です。※そのまま使ってます。
どのようにしてお送りしたらいいのでしょう?
※ちなみに、使用のテンプレートは、こちらからDLした「mt_standard_42_full」です。
壱からkikiへの返信
>kikiさん
こんにちは。
サンプルテンプレートのままでラジオボタンが正しく表示できないとなると、何か想定外の現象が起こっている状況です。
申し訳ありませんが、そちらでお使いのサーバーでプラグインの動作をデバッグしてみないと、原因は不明です。
kiki
ご回答、ありがとうございます。
インストールからやり直してみたところ、
(男・女)ラジオボタン問題なく表示されました。
ヨシと思い、例5のように
赤|赤
青|青
緑|緑
を設定し再構築・・・すると、
「男」、「赤」のようにやはり先頭の項目しか表示されません。
ラジオボタン追加を辞め、その10のテキストボックスの追加をしてみました。
問題なくできるのですが、ラジオボタンは先頭の項目「男」のみです。※女を先に書くと「女」です。
ちなみにコードは何も触らず、テキストエディタで一旦開き、
それをそのままコピペし、再構築してみました。
「男」とやはり先頭の項目のみです(><)
テキストエディタで開く箇所で問題が起こっているようで?
保存する文字コードが原因なのでしょうか?
お心あたりありましたら、アドバイスお願いします。
壱
>kikiさん
こんにちは。
MTSetParamListタグでは、改行文字で行の区切りを判断しています。
いただいた症状からすると、プラグインで想定していないような改行コードが保存されているのではないかと思われます。
文字コードが原因であることも考えられますので、可能であれば、文字コードを変えてみてください。
また、お使いのWebブラウザに依存する問題かも知れません。他のWebブラウザでも動作を試してみてください。
kikiから壱への返信
早々のご返答、ありがとうございます。
テキストエディタは「TeraPad」で、
通常以下の状態で使ってます。
----------------------------
漢字改行コードを自動認識
初期漢字コード:SHIFT-JIS
初期改行コード:CR+LF
保存は両者自動です。
----------------------------
改行、文字コード、ブラウザ(IE7、Firefox3)検証も
試してみましたが、なかなか回避されません。
引続きトライしてみます(^^)
追伸:
皆さんはどうされてますでしょうか?
お勧め設定があればご伝授ください。
てつこ
お世話になります。
下記の用にメールフォームにラジオボタンを設置しました。
<MTSetParamList list_name="list_quote">
書籍の内容について| 書籍の内容について<br />|mail_quote_content
書籍のお求め、ご請求について| 書籍のお求め、ご請求について<br />|mail_quote_claim
このWEBサイトについて| このWEBサイトについて<br />|mail_quote_web
</MTSetParamList>
<p>
<MTGetParamList list_name="list_quote">
<input type="radio" name="mail_quote" id="<MTVar name="gp_id">" value="<MTVar name="gp_value">"<MTIf name="mail_quote" eq="$gp_value"> checked="checked"</MTIf>><MTVar name="gp_string">
</MTGetParamList>
</select>
</p>
メールフォームで選択された値を送信確認で表示させたいのですが、
送信確認には下記の様に記述しました。
<MTGetParamList list_name="list_quote">
<input type="radio" name="mail_quote" id="<MTVar name="gp_id">" value="<MTVar name="gp_value">"<MTIf name="mail_quote" eq="$gp_value"> checked="checked"</MTIf>><MTVar name="gp_string">
</MTGetParamList>
メールフォームから、確認ボタンを押下すると、
Publish error in template 'mail_preview:送信確認': Error in <mtGetParamList> tag: List 'list_quote' is not defined.
の様なエラーがでてしまうのですが、
メールフォームプラグインV2.0・その12(ラジオボタン/セレクトの追加)の通りに設定していると思うのですが、
どこが違っているのか教えていただけたら、幸いです。
壱からてつこへの返信
>てつこさん
こんにちは。
MTSetParamListタグのブロックとMTGetParamListタグのブロックは、同じテンプレートにある必要があります。
コメントの内容からすると、送信確認テンプレートには、MTGetParamListタグのブロックしか入れていないのではないかと推測します。
送信確認テンプレートにも、MTSetParamListタグのブロックを入れてください。
てつこからてつこへの返信
壱さま
ありがとうございました。
解決できそうです。
棗
お世話になります。
このメールフォームの題名は基本設定の方から決めれるようになっていますが、フォームのセレクトボタンで選んだ項目をメールの題名にするということはできませんでしょうか?
ご回答いただけると幸いです。
宜しくお願いいたします。
壱
>棗さん
こんにちは。
申し訳ありませんが、ご要望のような件は、別注のプラグインにて承っております。
matsuda
すみません。どうしても良く分りません。
試験的に
5.例 にある通りの記述
<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>
を共通部分に入れたとすると、「メール本文」と「メール確認」には
どのように書きいれたらいいのでしょうか?
選択した色:<$MTMailPreviewExtParam name="mail_color"$>
としても エラーになります。
よろしくお願いします。
壱からmatsudaへの返信
>matsudaさん
こんにちは。
コメントにあるコードで、MTMailPreviewExtParamとnameモディファイアの間のスペースが全角になっていますが、この通りにテンプレートに入力されているのでしょうか。
全角スペースだとエラーになりますので、半角スペースにしてください。
matsudaからmatsudaへの返信
失礼しました。
うまくいきました。
ありがとうございました。
JINN
お世話になります。
セレクトボックスの項目を必須にしたいのですが、通常のように「Value」を空白にすると内容確認時点で空白状態に戻ってしまい、エラー判定が出てしまいます。
どのような対処法がありますでしょうか
お忙しい所申し訳ありませんよろしくお願い致します。
壱からJINNへの返信
>JINNさん
こんにちは。
サンプルテンプレートの「Movable Type 5クラシックテーマ用(各種機能使用)」にセレクトを入力必須にする例が入っていますので、そちらを参照してください。