お知らせ
2008年1月11日
拙著新刊の「ブログ簡単パワーアップ FC2ブログスーパーカスタマイズテクニック」が発売されました。
FC2ブログのさまざまなカスタマイズ方法を解説しています。
FC2ブログユーザーの皆様はぜひお買い求めください。
他にも多数書籍を執筆しています。
こちらもぜひご覧ください。
メールフォームプラグインV2.0・その18(メールフォームのAjax化)
メールフォームプラグインでは、メールフォームをAjax化することもできます。
1.メールフォームテンプレートの書き換え
まず、メールフォームテンプレートで、以下の2箇所を書き換えます。
1-1.MTMailFormAjaxJSタグの追加
メールフォームテンプレートの中に、以下のタグを追加します。
追加する位置は、メールフォーム本体を表示する直前が良いでしょう。
<$MTMailFormAjaxJS$>
1-2.Ajax化する部分をdiv要素で囲む
次に、Ajaxによって表示を変化させる部分を、「<div id="ajax_mail">」と「</div>」のタグで囲みます。
1-3.書き換えの例
Movable Type標準テンプレートセット用のメールフォームの場合、メールフォームのテンプレートを以下のように書き換えると良いでしょう。
赤字の箇所が書き換えた部分です。
<MTSetVar name="mail_setting" value="">
<MTSetVar name="body_class" value="mt-main-index">
<MTSetVar name="main_template" value="1">
<MTSetVar name="sidebar" value="1">
<MTSetVarBlock name="page_title">メールフォーム</MTSetVarBlock>
<$MTInclude module="ヘッダー"$>
<$MTMailFormAjaxJS$>
<div id="ajax_mail">
<h2 class="comments-open-header">メールの送信</h2>
<$MTIncludeMailFormCommon$>
</div>
<$MTInclude module="フッター"$>
2.メールフォーム共通部分テンプレートの書き換え
次に、「メールフォーム共通部分」のテンプレートで、フォーム部分(form要素の内部)に、以下のタグを追加します。
<input type="hidden" name="mail_ajax" value="1" />
また、送信と確認のボタンのタグを、以下のように書き換えます。
<input type="button" name="mail_preview" id="mail_preview" accesskey="v" value="確認" onclick="return FJAjaxMail.send('preview');" />
<input type="button" name="mail_post" id="mail_post" accesskey="s" value="送信" onclick="return FJAjaxMail.send('post');" />
3.送信確認等のテンプレートの書き換え
メールフォームをAjax化すると、送信確認/送信エラー/送信完了の各ページは、Ajaxによって表示されるようになります。
手順の1.でメールフォームテンプレートにdiv要素を追加しましたが、その内部がAjaxによって書き換えられます。
そこで、送信確認/送信エラー/送信完了の各テンプレートを書き換えて、div要素内に表示したい内容だけを入れるようにします。
たとえば、送信確認のテンプレートは、以下のようにすることが考えられます。
<h2 class="comments-open-header">メールの確認</h2>
<div class="comments-open-content">
<p>以下の内容でメールを送信します。<br />内容を修正する場合は、この後にあるメールフォームで修正してください。</p>
<p>名前:<br /><$MTMailPreviewAuthor$></p>
<p>メールアドレス:<br /><$MTMailPreviewEMail$></p>
<p>題名:<br /><$MTMailPreviewSubject$></p>
<p>本文:<br /><$MTMailPreviewBody convert_breaks="1"$></p>
</div>
<h2 class="comments-open-header">メールフォーム</h2>
<$MTIncludeMailFormCommon$>
4.処理待ち時および処理エラー時のメッセージの設定
Ajaxで通信処理を行っているときと、通信処理でエラーがあった時に、メッセージを表示することができます。
メールフォームの設定を開き、「Ajax」の部分の「処理待ち時のメッセージ」と「処理待ち時のメッセージ」の欄に、それぞれのメッセージを設定します。
メッセージの中では、Movable Typeのタグを使うこともできます。
5.メールフォームの再構築
ここまでの作業が終わったら、メールフォームのテンプレートを再構築します。
そして、メールフォームの動作を確認します。
6.Ajaxの制限
Ajaxでは、ドメインをまたがった通信を行うことができません。
この制限は、メールフォームプラグインでも当てはまります。
たとえば、Movable Type本体が「http://www.foo.com/~」のアドレスにインストールされているとします。
一方、ブログのアドレスが「http://blog.foo.com/~」になっているとします。
この場合、MTとブログのドメインが一致していないので、メールフォームをAjax化することができません。
前後の記事
関連するエントリー(18件)
- メールフォームプラグインV2.0・その19(テンプレートセットの配布)(2008年03月16日 13:35)
- メールフォームプラグインV2.0・その17(各種エラー時の処理)(2008年03月05日 10:30)
- メールフォームプラグインV2.0・その16(チェック必須チェックボックスの作成)(2008年03月04日 10:08)
- メールフォームプラグインV2.0・その15(未入力エラーの判別)(2008年02月29日 12:01)
- メールフォームプラグインV2.0・その14(メールアドレスの入力確認)(2008年02月24日 10:53)
- メールフォームプラグインV2.0・その13(エラー判別の概要)(2008年02月21日 16:58)
- メールフォームプラグインV2.0・その12(ラジオボタン/セレクトの追加)(2008年02月19日 13:49)
- メールフォームプラグインV2.0・その11(チェックボックスの追加)(2008年02月16日 08:40)
- メールフォームプラグインV2.0・その10(テキストボックスの追加)(2008年02月13日 10:59)
- メールフォームプラグインV2.0・その9(メール本文/返信メールテンプレートの作成)(2008年02月12日 16:43)
- メールフォームプラグインV2.0・その8(送信確認/送信エラー/送信完了テンプレートの作成)(2008年02月11日 14:25)
- メールフォームプラグインV2.0・その7(「メールフォーム」テンプレートの作成)(2008年02月09日 16:04)
- メールフォームプラグインV2.0・その6(「メールフォーム共通部分」テンプレートの作成)(2008年02月07日 10:50)
- メールフォームプラグインV2.0・その5(メール送信エラーへの対策)(2008年02月05日 11:36)
- メールフォームプラグインV2.0・その4(自動返信メールの設定)(2008年02月04日 14:50)
- メールフォームプラグインV2.0・その3(メールフォームの基本設定)(2008年02月02日 10:30)
- メールフォームプラグインV2.0・その2(サンプルテンプレートセットのインストール)(2008年02月01日 16:04)
- メールフォームプラグインV2.0・その1(概要とインストール)(2008年01月31日 14:38)
トラックバック(0件)
このブログ記事を参照しているブログ一覧: メールフォームプラグインV2.0・その18(メールフォームのAjax化)
このブログ記事に対するトラックバックURL: http://www.h-fj.com/mt/mt-tb.cgi/1232.


コメントする
管理者のみにコメントを送信したい場合は、「コメントを秘密にする」のチェックをオンにしてコメントを送信するか、メールフォームからメールをお送りください。
ブログ全体の感想など、この記事に直接に関係しないコメントは、ゲストブックにお気軽に投稿してください。