夢もなく、怖れもなく

sarusaruMailForm - HTMLに関数を埋め込むだけで簡単に作れるメールフォーム

sarusaruMailForm
※【追記】新しいVerをこちらで公開しています

Webサイト制作を行うと、ほぼ必ず必要となるメールフォーム。

たまに自分でやっつけようと思うと、毎回毎回地味に手間がかかる。
なんだか無意識レベルでストレスだな、と感じて1年前ぐらいにライブラリ(?)にした。

しばらく忘れていたのだが、ちょっと引っ張り出す機会があったので公開。 


一般的なメールフォームはこんなイメージだろうか。

【地味に手間がかかる理由】
・フォーム項目が変わると、都度「入力」「確認」「送信」の繋ぎを調整する必要がある
 ※仕様の途中変更があった場合も、ちょっと嫌
・必須項目のチェックとかが必要
・PerlやPHP内でのHTMLソースの管理が面倒
 ※Dreamweaverのライブラリとかも適用しにくい

上げ連ねただけで、なんとも煩わしい。あー嫌だ嫌だ。

結局、項目の管理を「ページ単位」でやる事が問題なんだと思い至り
各項目をFlashのMCのような感覚で、各 input タグが自走するようなものを作ってみた。


使い方はとても簡単で、基本的に<input>タグ類を関数に置き換えるだけで動作する。


【使い方】
①入力フォーム用のHTMLファイルを用意する
②ライブラリを読み込む
  ※ファイル先頭で以下のように読み込みます

<?php
require './sarusaruMailForm_conf.php'; //設定ファイル
require './sarusaruMailForm_lib.php'; //ライブラリ
?>


③<form>タグ直下にcheckStatus() 、</form>タグ直前にfromSubmit()を設定

<form action="this.php" method="POST">
<?php checkStatus();?>
  ・
  ・
  ・ 
  ・
<?php formSubmit();?>
</form>


④<input>タグ類を以下の関数に差し替える
⑤拡張子を.phpにして保存。
⑥完了

一旦完了してしまえば、後は<form>内に関数を足したり引いたりするだけ。

【関数】

formText(項目名,必須フラグ,追加属性)
<input type="text"> を生成する
formTextarea(項目名,必須フラグ,追加属性)
<textarea>を生成する
※行数等は引数[追加属性]で指定可能
formRadio(項目名,追加属性)
<input type="radio">を生成する
※項目は直前に 配列「list」に格納する
formCheck(項目名,必須フラグ,追加属性)
<input type="radio">を生成する
※項目は直前に 配列「list」に格納する
formSelectMultiple(項目名,必須フラグ,追加属性)
<select multiple>を生成する
formSelect(項目名,追加属性)
<select>を生成する
formPost(項目名,必須フラグ)
4桁3桁の郵便番号入力欄を生成する
formPref(項目名,追加属性)
都道府県のプルダウンを生成する
formNameKanji(項目名,必須フラグ)
姓・名の入力欄を生成する
formNameKana(項目名,必須フラグ)
セイ・メイの入力欄を生成する
formMail(項目名,必須フラグ,追加属性)
メールアドレスの入力欄を生成する
※自動返信機能を使う為にはこのフォームは必ず設置すること
formBirthDay(項目名,必須フラグ,追加属性)
年・月・日の誕生日のプルダウンを生成する
checkStatus()
ステータス管理関数
お約束事として<form>タグ直下に設置
formSubmit()
送信ボタン生成
お約束事として</form>直前に設置


【オプション機能】
※設定ファイル内のフラグでON/OFFする

自動返信機能
送信者に内容確認メールを自動返信する
CSVファイル保存
送信された内容をカンマ区切りにしてテキスト保存


【サンプル】

以下のソースだけで、項目1つのメールフォームが作れる。

<?php
require './sarusaruMailForm_conf.php'; //設定ファイル
require './sarusaruMailForm_lib.php'; //ライブラリ
?>
<html><head></head><body>

<form action="index.php" method="POST">
<?php checkStatus();?>

■名前 : <?php formNameKanji('氏名','1'); ?>

<?php formSubmit();?>
</form>

</body></html>


たとえば1つ項目を増やす場合はこうなる

<?php
require './sarusaruMailForm_conf.php'; //設定ファイル
require './sarusaruMailForm_lib.php'; //ライブラリ
?>
<html><head></head><body>

<form action="index.php" method="POST">
<?php checkStatus();?>

■名前 : <?php formNameKanji('氏名','1'); ?><br />
■感想 : <?php formText('感想','1',''); ?>

<?php formSubmit();?>
</form>

</body></html>


その他もろもろ盛り込んだサンプル
動作サンプル (ソース

【ダウンロード】
sarusaruMailForm


【その他】
・heteml / ロリポで動いている。たぶんPHPは動けばほぼ動く。
・商用利用をされる場合は、ご一報くださいませ。

more...»

2008/01/13 01:02



Recent Comment