phpform の使い方を紹介します。
こちらの記事を参考にすればデモサイトの様なフォームが簡単に作れます。
LGPL ライセンスで公開しておりますので、公開・非公開はご自由にどうぞ。
ダウンロード
phpform_1.0.tar.gz
phpform_1.0.zip
※現在β版として公開中です。バグがありましたら報告ください。
phpform を設置
ダウンロードして解凍したら、以下のような構成になっています。
- index.php
- form.css
- phpform/
- config.php
- phpform.php
- includes/
- plugin/
- sample/
- template/
index.php
あなたが主に設定するファイルです。
ここに HTML と phpform タグを記述していきます。
form.css
これはデフォルト用の CSS です。削除して頂いて構いません。
phpform/config.php
メールフォームの設置の際に必ず設定するファイルです。
メールの送信先や自動返信の有無などです。
phpform/template/*
このディレクトリ以下にはメールを送信する際のテンプレートが入っています。
後ほど説明していきますが、とても便利です。
phpform タグ
phpform 設定タグ(必須)
| 項目タイプ |
タグ |
| phpform 読み込みタグ |
<?php require ’phpform/phpform.php’; ?> |
| フォーム開始タグ |
<?php $form->create(); ?> |
| フォーム終了タグ |
<?php $form->end(); ?> |
phpform 部品タグ
| 項目タイプ |
タグ |
| テキストボックス |
<?php $form->text(項目名, オプション); ?> |
| テキストエリア |
<?php $form->textarea(項目名, オプション); ?> |
| パスワード |
<?php $form->password(項目名, オプション); ?> |
| 隠しデータ |
<?php $form->hidden(項目名, オプション); ?> |
| チェックボックス |
<?php $form->checkbox(項目名, 選択肢, オプション); ?> |
| ラジオボタン |
<?php $form->radio(項目名, 選択肢, オプション); ?> |
| セレクトボタン |
<?php $form->select(項目名, 選択肢, オプション); ?> |
以上が phpform で使えるタグ一覧です。
以下に部品タグの詳細を説明します。
phpform 部品タグ詳細
phpform 読み込みタグ(必須)
phpform の機能を読み込みます。環境によってパスを書き換えてください。
ページの一番先頭に書くことが推奨されます。
1
| <?php require 'phpform/phpform.php'; ?> |
フォーム開始タグ(必須)
フォームを開始する前に以下のタグを書きます。
1
| <?php $form->create(); ?> |
フォーム終了タグ(必須)
フォームを終了するところで以下のタグを書きます。
テキストボックスタグ
テキストボックスを設置するタグ。
1
| <?php $form->text('項目名'); ?> |
テキストエリアタグ
テキストエリアを設置するタグ。
1
| <?php $form->textarea('項目名'); ?> |
パスワードタグ
パスワード入力欄を設置するタグ。
1
| <?php $form->password('項目名'); ?> |
チェックボックスタグ
チェックボックスを設置するタグ。
これまでのタイプとは違い、選択肢を事前に設定します。
1
| <?php $form->password('項目名', Array('選択肢1', '選択肢2')); ?> |
セレクトボックスタグ
セレクトボックスを設置するタグ。
チェックボックス同様、選択肢を事前に設定します。
1
| <?php $form->select('項目名', Array('選択肢1', '選択肢2')); ?> |
ラジオボタンタグ
ラジオボタンを設置するタグ。
チェックボックス同様、選択肢を事前に設定します。
1
| <?php $form->radio('項目名', Array('選択肢1', '選択肢2')); ?> |
隠しデータタグ
隠しデータを送信するタグです。
隠しデータの項目名と送信される値を入力しますので、以下のようになります。
1
| <?php $form->hidden('隠し項目名', Array('value' => '隠し内容')); ?> |
一通りタグを紹介しましたが、さらに細かい設定についてはタグの引数について理解していただく必要があります。phpform のタグを表にしましたのでご確認ください。
それぞれ、項目名と選択肢は必須です。
オプションは設定しなくても問題ありません。
オプションは基本的に Array(‘value’ => ‘hoge’) と、連想配列でデータを設定します。
設定できるオプションは以下をご覧ください。
phpform タグオプション
オプションの指定場所は、先程の表にも書いてあるようにそれぞれタグによって違います。
例えばテキストボックスへ初期値を設定しつつ、必須項目に設定する場合は、以下のように設定します。
1
| <?php $form->text('項目名', Array('value' => '初期値', 'required' => true)); ?> |
オプションの詳細について、以下の表を参考にしてください。
共通オプション
| オプション名 |
説明 |
| value |
初期値。checkbox の時のみ配列で value の値を格納します。
(checkbox は複数選択可能なため、value 値も複数必要。) |
| id |
部品に対して id を指定します。 |
| class |
部品に対して class を付与します。 |
| maxlength |
最大文字数を設定します。 |
| minlength |
最低文字数を設定します。 |
| data_type |
int もしくは integer で整数のみの受付。
float もしくは double もしくは real 浮動小数点のみの受付。
string で文字列のみの受付。 |
| state |
false で入力は送信はさせるが、確認画面や自動返信メールには表示しない。デフォルトは true が設定されている。 |
| required |
true で必須項目。デフォルトは false が設定されている。 |
| repetition |
同じキーを入れると重複チェック機能や年月日存在チェック機能が働きます。 |
ラジオボタン用オプション
| オプション名 |
説明 |
| fieldset |
true で fieldset と legend を出力。false で div で囲みます。 |
| legend |
true で fieldset と legend を出力。false で div で囲みます。 |
phpform タグオプション詳細説明
初期値設定
以下のようにして初期値を設定することができます。
1
| <?php $form->text('項目名', Array('value' => '初期値')); ?> |
チェックボックスは複数の項目を選択できるため、初期値の設定がチェックボックスの場合は通常とは違い、以下のように設定します。
1
| <?php $form->select('項目名', Array('項目1', '項目2'), Array('value' => Array('項目1', '項目2'))); ?> |
id + class の設定
id と class を部品に付加することができます。
1
2
3
| <?php $form->text('項目名', Array('id' => 'textID')); ?>
<?php $form->text('項目名', Array('class' => 'textClass')); ?>
<?php $form->text('項目名', Array('id' => 'textID', 'class' => 'textClass')); ?> |
最大文字数・最低文字数を設定
1
2
| <?php $form->text('項目名', Array('maxlength' => 32)); ?>
<?php $form->password('パスワード', Array('minlength' => 4)); ?> |
型チェック機能
数値や文字列などをチェックできます。
数値のみで金額を入力してもらいたい場合などに便利な機能です。
1
| <?php $form->text('金額', Array('data_type' => 'int')); ?> |
非表示機能
入力はさせたい、もしくは送信はさせたいが利用者及びブラウザ上では非表示にしておきたい場合の切り替えが可能です。
通常の部品はすべてデフォルトは true になっていますが、hidden だけはデフォルトで false になっています。
1
| <?php $form->text('秘密の質問', Array('state' => false)); ?> |
必須機能
最も使用頻度の高い機能かもしれません。
全ての部品はデフォルトでは false が設定されています。
1
| <?php $form->text('名前', Array('required' => true)); ?> |
repetition 機能
様々な機能に対応しているオプションです。
部品に同じ値を入れておくことで、重複チェックをすることが可能です。
例えば、メールアドレスと確認用メールアドレスのチェックを行う場合は、以下のようにタグを書くだけで OK です。
1
2
| <?php $form->text('メールアドレス', Array('repetition' => 'email')); ?>
<?php $form->text('確認用アドレス', Array('repetition' => 'email')); ?> |
また、checkdata と設定することで、その年月日が存在するかのチェックを行うことも可能です。
1
2
3
| <?php $form->select('年', null, Array('repetition' => 'checkdate')); ?>
<?php $form->select('月', null, Array('repetition' => 'checkdate')); ?>
<?php $form->select('日', null, Array('repetition' => 'checkdate')); ?> |
設定ファイルの編集
phpform/config.php ファイルを必ず編集します。
主に送信先、送信元を変更するだけです。
テンプレートの編集
phpform/template 以下にメール送信の際のテンプレートがあります。
それぞれ管理者へのメール送信用、自動返信用のテンプレートが用意されています。
テンプレート内ではタグが使えます。
[[お名前]] 様
お問い合わせ頂きありがとうございました。
以下がお問い合わせ内容です。お控えください。
————————————————
[[ALL]]
————————————————
今後ともよろしくお願い致します。
2重カッコで囲い、フォームの項目名を書く事で、入力された値に置き換わります。
[[ALL]] というのは、お問い合わせ内容を項目名と値で一覧にしてくれます。
簡易的なフォームの場合は [[ALL]] が便利でしょう。
他にもプラグインや隠し機能があるのですが、今回はここまで。