
※【追記】新しい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...»