\CodeLapseForm

フォームの生成とフォームへの値の復元を行うクラスです。

<?php

//-- フォームの開始タグを表示します。
Form::open('method="post" action="post.php"');
// あるいは Form::open(array('method' => 'post', 'action' => 'post.php'));

//-- フォームの閉じタグを表示します。
Form::close();

//-- テキストフォームを表示します。(echoやprintは不要です。)
Form::text('firstname');
     // => <input type="text" name="firstname">

//-- ID名とクラス名を指定してテキストフォームを表示します。
//   このID、クラス指定はすべてのフィールド生成メソッドで利用可能です。
//-- (フィールド名とID、クラス名の間にスペースが必要です。)
Form::text('firstname #input_firstname.form-control.regist-name');
     // => <input type="text" name="firstname" id="input_firstname" class="form-control regist-name">

//-- 属性を指定してテキストフォームを表示します。
Form::text('firstname', array('required', 'maxlength' => '10'));
     // 別の書き方 : Form::text('firstname', 'required maxlength="10"'));
     // => <input type="text" name="firstname" required maxlength="10">

//-- フォームに値を復元させます。
// フォームに復元させる値を一括設定
Form::setValue(array(
     'firstname'     => 'Boy',
     'lastname'      => 'Tom',
     // 自動的にエスケープされます。
     'profile'       => '<script>alert("\'Allo! \'Allo!")</script>'
));

Form::text('firstname');
Form::text('lastname');
Form::textarea('profile');
     // => <input type="text" name="firstname" value="Tom">
     // => <input type="text" name="lastname" value="Boy">
     // => <textarea name="profile">&lt;script&gt;alert(&quot;\'Allo!\'Allo!&quot;)&lt;/sctipt&gt;</textarea>

//-- チェックボックスを表示します。
Form::checkbox('hobby[]', 'Golf');
Form::checkbox('hobby[]', 'Baseball');
     // => <input type="checkbox" name="hobby[]" value="Golf">
     // => <input type="checkbox" name="hobby[]" value="Baseball">

//-- セレクトボックスを表示します。
$selections = array('Select' => array('required', 'selected'), 'male' => 0, 'female' => 1);
Form::select('gender', $selections);
     // => (実際の出力は整形されていません)
     //      <select name="gender">
     //          <option required selected>Select</option>
     //          <option value="0">male</option>
     //          <option value="1">female</option>
     //      </select>

Summary

Methods
Properties
Constants
setValue()
getValue()
open()
close()
hidden()
text()
password()
textarea()
checkbox()
radio()
select()
file()
submit()
No public properties found
DEFAULT_FORM_NAME
No protected methods found
No protected properties found
N/A
parseName()
parseHTMLAttr()
mergeByRef()
buildHTML()
buildInput()
$_values
N/A

Constants

DEFAULT_FORM_NAME

DEFAULT_FORM_NAME

Properties

$_values

$_values : 

Type

Methods

setValue()

setValue(array $value, string $form)

フォームに初期値を割り当てます。

割り当てる変数は以下のような形式でなければいけません

<?php
$values = array(
  'name属性の値' => 'value属性の値',

  // checkbox, select に対応する値を示すとき
  // (選択された要素がひとつのみであれば、値はただの文字列でも問題ありません)
  'checkboxのname属性の値' => array('選択値1', '選択値2')
);

この形式に沿わない場合、フィールド生成時に正しく値が復元されません���

Parameters

array $value

フォームに割り当てる初期値が入った配列

string $form

(optional) 値を割り当て先グループ名(お好みの名前、省略可)

getValue()

getValue(string $field, string $form) : string|array|null

フォームに割り当てられた値を取得します。

Parameters

string $field

値を取得したいフィールドの名前

string $form

(省略可) 値を取得するグループ名

Returns

string|array|null —

取得した値

open()

open(string|array $attr)

フォームの開始タグを出力します。

Parameters

string|array $attr

(省略可)HTMLに設定する属性。

                          "属性名" => "値"の連想配列、もしくはHTMLの属性部分の文字列
                          (属性部分の文字列 例: "min='0' max='20'")

close()

close()

フォームの閉じタグを出力します。

hidden()

hidden(string $name, string $value, array|string $attr, string $form)

不可視フィールドを生成し、出力します。

もし、第3引数でvalue属性が指定されていても 第2引数に指定したvalueが優先されます。

Parameters

string $name

フィールドの名前(name属性に設定されます)

string $value

value属性に設定する値

array|string $attr

(省略可)HTMLに設定する属性。

                         "属性名" => "値"の連想配列、もしくはHTMLの属性部分の文字列
                         (属性部分の文字列 例: "min='0' max='20'")
string $form

初期値が設定されているグループ名

text()

text(string $name, array|string $attr, string $form)

テキストボックスを生成し、出力します。

Parameters

string $name

フィールドの名前(name属性に設定されます)

array|string $attr

(省略可)HTMLに設定する属性。

                         "属性名" => "値"の連想配列、もしくはHTMLの属性部分の文字列
                         (属性部分の文字列 例: "min='0' max='20'")
string $form

初期値が設定されているグループ名

password()

password(string $name, array|string $attr, string $form)

パスワードフォームを生成し、出力します。

Parameters

string $name

フィールドの名前(name属性に設定されます)

array|string $attr

(省略可)HTMLに設定する属性。

                         "属性名" => "値"の連想配列、もしくはHTMLの属性部分の文字列
                         (属性部分の文字列 例: "min='0' max='20'")
string $form

初期値が設定されているグループ名

textarea()

textarea(string $name, array|string $attr, string $form)

テキストエリアを生成し、出力します。

Parameters

string $name

フィールドの名前(name属性に設定されます)

array|string $attr

(省略可)HTMLに設定する属性。

                         "属性名" => "値"の連想配列、もしくはHTMLの属性部分の文字列
                         (属性部分の文字列 例: "min='0' max='20'")
string $form

初期値が設定されているグループ名

checkbox()

checkbox(string $name, string $value, array|string $attr, string $form)

チェックボックスを生成し、出力します。

Parameters

string $name

フィールドの名前(name属性に設定されます)

string $value

value属性に設定する値

array|string $attr

(省略可)HTMLに設定する属性。

                         "属性名" => "値"の連想配列、もしくはHTMLの属性部分の文字列
                         (属性部分の文字列 例: "min='0' max='20'")
string $form

初期値が設定されているグループ名

radio()

radio(string $name, string $value, array|string $attr, string $form)

ラジオボタンを生成し、出力します。

Parameters

string $name

フィールドの名前(name属性に設定されます)

string $value

value属性に設定する値

array|string $attr

(省略可)HTMLに設定する属性。

                         "属性名" => "値"の連想配列、もしくはHTMLの属性部分の文字列
                         (属性部分の文字列 例: "min='0' max='20'")
string $form

初期値が設定されているグループ名

select()

select(string $name, string $selection, array|string $attr, string $form)

セレクトボックスを生成し、出力します。

第2引数 $selectionは以下の形式でなければなりません。

array(
   '表示名' => "value属性の値",
   // 属性を指定する場合は、配列の最初、もしくは、'value'キーにvalue属性の値を指定してください。
   // '表示名' => array("value属性の値", '属性名' => '値', '属性名2' => '値2'),
   // '表示名' => array('value' => '値', '属性名2' => '値2'),
    '表示名2' => "value属性の値2",
)

TODO optgroup

Parameters

string $name

フィールドの名前(name属性に設定されます)

string $selection

value属性に設定する値

array|string $attr

(省略可)HTMLに設定する属性。

                             "属性名" => "値"の連想配列、もしくはHTMLの属性部分の文字列
                             (属性部分の文字列 例: "min='0' max='20'")
string $form

初期値が設定されているグループ名

file()

file(string $name, array|string $attr)

ファイルセレクトフォームを生成し、出力します。

入力値の復元はされません。

Parameters

string $name

フィールドの名前(name属性に設定されます)

array|string $attr

(省略可)HTMLに設定する属性。

                             "属性名" => "値"の連想配列、もしくはHTMLの属性部分の文字���
                             (属性部分の文字列 例: "min='0' max='20'")

submit()

submit(string $value, array|string $attr)

submitボタンを生成し、出力します。

Parameters

string $value

表示するテキスト

array|string $attr

(省略可)HTMLに設定する属性。

                         "属性名" => "値"の連想配列、もしくはHTMLの属性部分の文字列
                         (属性部分の文字列 例: "min='0' max='20'")

parseName()

parseName(string $name) : array

フィールド名をHTML属性に変換します。

フィールド名にはCSSのセレクタ記法を使って要素のIDとクラスを指定できます。 書き方は以下のとおりです。

name #id.class.class2

最初にname属性に設定する名前を指定し、その後ろに""半角スペースを一つ空けて""

IDや.classを指定します。

Parameters

string $name

フィールド名

Returns

array —

nameキーを含む配列

parseHTMLAttr()

parseHTMLAttr(string $attrStr)

HTML属性文字列をパースし、配列に変換します。

HTML属性文字列とは "attr='b' attr2='b'"のような、 HTMLの属性だけの文字列です。

Parameters

string $attrStr

mergeByRef()

mergeByRef(array $mergeIn, array ...$arr)

配列を一つにマージします。

array_merge関数と違うのは、このメソッドが破壊的であるということです。 このメソッドは最初の引数(マージ先)の参照を受け取り、 その配列内を直接書き換えます。

Parameters

array $mergeIn
array $arr variadic

マージする配列(複数)

buildHTML()

buildHTML(string $tag, string $inner, boolean $close, array $attributes) : string

HTMLタグを生成します。

Parameters

string $tag

タグ名

string $inner

(省略可)タグの内部コンテンツ

boolean $close

(省略可)閉じタグをつけるか

array $attributes

(省略可)設定する属性。 "属性名" => "値"の連想配列

Returns

string —

HTML

buildInput()

buildInput(string $type, string $name, array $attr, string|array $userAttr, string $form)

input要素を生成します。

Parameters

string $type

type属性

string $name

name属性

array $attr

(optional) 優先的に設定する属性

string|array $userAttr

(optional) ユーザー定義の属性(上書きされます)

string $form

(optional) 値を取り出すグループ名