Curry
PHP Framework

core

db

html

utility

HtmlForm

クラス概要

HtmlFormはHtmlElementをFORMタグ生成用に特化したクラスです。
このクラスを利用するとFORMタグとフォームの入力タグを少ないコーディングで構築することができます。
フォームはFORMタグに各種の入力タグが含まれる形で構成されますが、通常は見栄えや入力のしやすさのために何らかのレイアウトを整形するためのタグが併用されます。HtmlFormでは何も考えなくてもあらかじめ簡易的なレイアウトタグが構成されるようになっています。
更に自由度の高いカスタムレイアウトの利用も可能です。

Curry対応バージョン

バージョン 1.4.0 以降

クラスファイル位置

curry/html/html_form.php

フィールド

公開されるフィールドはありません。

メソッド

メソッド名 アクセス 概要
isAutoLayout public フォームのオートレイアウトが有効か無効かの設定を取得します。
setIsAutoLayout public オートレイアウトの有効・無効を設定します。
オートレイアウトを有効にするとフォームへ入力タグの追加時に自動的にレイアウトタグが構成されるようになります。
オートレイアウトの詳細はマニュアルを参照してください。
setContainerTagName public オートレイアウトにおける、コンテナとなるタグのタグ名を指定します。
デフォルトではdivに設定されています。
setCaptionContainerTagName public オートレイアウトにおける、コンテナの更に見出し部分のサブコンテナのタグ名を設定します。
デフォルトではspanに設定されています。
setInputContainerTagName public オートレイアウトにおける、コンテナの更に入力タグ部分のサブコンテナのタグ名を設定します。
デフォルトではspanに設定されています。
setErrorTagName public 入力エラー表示用のタグのタグ名を設定します。
デフォルトではspanに設定されています。
setContainerClass public オートレイアウトにおける、コンテナとなるタグのクラス属性を設定します。
デフォルトでは"container"に設定されています。
setCaptionContainerClass public オートレイアウトにおける、コンテナの中の見出し部分のサブコンテナのclass属性を設定します。
デフォルトでは"caption"に設定されています。
setInputContainerClass public オートレイアウトにおける、コンテナの中の入力タグ部分のサブコンテナのclass属性を設定します。
デフォルトでは"input"に設定されています。
setErrorClass public オートレイアウトにおけるエラーメッセージ表示用のタグのclass属性を設定します。
デフォルトでは"error"に設定されいます。
setInnerContainer public formタグの直下で大枠のコンテナとしてタグを挟みたい場合、setInnerContainerでHtmlElementのインスタンスを設定スルと、HtmlFormの独自のメソッドで追加した入力タグは全てそのタグの下に入るようになります。
createTextbox public テキスト入力用の入力タグとして、type属性が"text"であるinputタグを生成し、取得します。
このメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
createTextarea public テキスト入力用のタグとして、textareaタグを生成し、取得します。
このメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
createPassword public パスワード入力用の入力タグとして、type属性が"password"であるinputタグを生成し、取得します。
このメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
createHidden public 非表示の入力タグとして、type属性が"hidden"であるinputタグを生成し、取得します。
このメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
createFile public アップロードファイル選択の入力タグとして、type属性が"file"であるinputタグを生成し、取得します。
このメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
createImage public 画像を利用したフォームデータ送信ボタンのタグとして、type属性が"image"であるinputタグを生成し、取得します。
このメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
createSubmit public フォームデータ送信ボタンのタグとして、type属性が"submit"であるinputタグを生成し、取得します。
このメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
createReset public フォーム入力データのリセットボタンのタグとして、type属性が"reset"であるinputタグを生成し、取得します。
このメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
createButton public ボタンのタグとして、type属性が"button"であるinputタグを生成し、取得します。
このメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
createCheckbox public チェックボックスのタグとして、type属性が"checkbox"であるinputタグを生成し、取得します。
このメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
createSelect public ドロップダウンリストとして、selectタグを生成し、取得します。
引数$listを指定すると、そのデータによって選択項目としてoptionタグを復数生成し、selectの下に追加します。
またこのメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
createRadio public ラジオボタンのタグとして、type属性が"radio"であるinputタグを生成し、取得します。
このメソッドでは、ラジオボタンのコンテナタグとしてspanを生成し、$listで指定されたデータを元にラジオボタンを複数生成し、spanの下に追加します。
またこのメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
createCheckboxes public 複数選択のチェックボックスのタグとして、type属性が"checkbox"であるinputタグを生成し、取得します。
このメソッドでは、チェックボックスのコンテナタグとしてspanを生成し、$listで指定されたデータを元にチェックボックスを複数生成し、spanの下に追加します。
またこのメソッドではformへの追加は行わないので、取得したインスタンスをaddFormElementメソッドで追加する必要があります。
addTextbox public テキスト入力用の入力タグとして、type属性が"text"であるinputタグを生成し、追加します。
生成したFormElementのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
addTextarea public テキスト入力用のタグとして、textareaタグを生成し、追加します。
生成したFormElementのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
addPassword public パスワード入力用の入力タグとして、type属性が"password"であるinputタグを生成し、追加します。
生成したFormElementのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
addHidden public 非表示の入力タグとして、type属性が"hidden"であるinputタグを生成し、追加します。
生成したFormElementのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
addFile public アップロードファイル選択の入力タグとして、type属性が"file"であるinputタグを生成し、追加します。
生成したFormElementのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
addImage public 画像を利用したフォームデータ送信ボタンのタグとして、type属性が"image"であるinputタグを生成し、追加します。
生成したFormElementのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
addSubmit public フォームデータ送信ボタンのタグとして、type属性が"submit"であるinputタグを生成し、追加します。
生成したFormElementのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
addReset public フォーム入力データのリセットボタンのタグとして、type属性が"reset"であるinputタグを生成し、追加します。
生成したFormElementのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
addButton public ボタンのタグとして、type属性が"button"であるinputタグを生成し、追加します。
生成したFormElementのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
addCheckbox public チェックボックスのタグとして、type属性が"checkbox"であるinputタグを生成し、追加します。
生成したFormElementのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
addSelect public ドロップダウンリストとして、selectタグを生成し、追加します。
引数$listを指定すると、そのデータによって選択項目としてoptionタグを復数生成し、selectの下に追加します。
生成したFormElementSetのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
addRadio public ラジオボタンのタグとして、type属性が"radio"であるinputタグを生成し、追加します。
このメソッドでは、ラジオボタンのコンテナタグとしてspanを生成し、$listで指定されたデータを元にラジオボタンを複数生成し、spanの下に追加します。
生成したFormElementSetのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
addCheckboxes public 複数選択のチェックボックスのタグとして、type属性が"checkbox"であるinputタグを生成し、追加します。
このメソッドでは、チェックボックスのコンテナタグとしてspanを生成し、$listで指定されたデータを元にチェックボックスを複数生成し、spanの下に追加します。
生成したFormElementSetのインスタンスを戻り値として返すため、後からインスタンスへの設定などの操作が可能です。
createLayout public カスタムレイアウトのインスタンスを生成し、取得します。
カスタムレイアウトはFormLayoutAbstractを継承したクラスですが、
"FormLayout" + 引数で指定された文字列によってレイアウトクラスを決定します。
例えば引数で"table"が指定されれば、FormLayoutTableクラスのインスタンスがレイアウトインスタンスとして生成されます。
addLayout public カスタムレイアウトのインスタンスを生成し、フォームに追加します。
これはcreateLayoutメソッドで取得したインスタンスをaddElementメソッドで追加するのと同じ動きになるため、処理の詳細はcreateLayoutと同様となります。
buildFromArray public フォームの入力タグの情報を定義した配列を元にフォームを構築します。
配列の定義方法の詳細はマニュアルを参照してください。
bindValue public name属性指定でフォーム入力項目用の値をセットします。
この値をセットしておくと、同じname属性の入力タグを追加した時に、そのタグの値の初期値として設定されます。このメソッドにより値をセットするタイミングは、入力タグを追加するより前でも後でもどちらのタイミングでもかまいません。
bindValues public フォームの入力タグに対する初期値を配列で復数一度にセットします。
bindValueメソッドの復数項目一括設定版メソッドです。
bindCaption public name属性指定でフォーム入力項目用の見出しテキストをセットします。
この値をセットしておくと、同じname属性の入力タグを追加した時に、そのタグの見出しテキストとして設定されます。このメソッドにより見出しをセットするタイミングは、入力タグを追加するより前でも後でもどちらのタイミングでもかまいません。
bindCaptions public フォームの入力タグの見出しテキストを配列で復数一度にセットします。
bindCaptionメソッドの復数項目一括設定版メソッドです。
bindError public name属性指定でフォーム入力項目に対するエラーメッセージを設定します。
このメソッドでエラーメッセージをセットしておくと、同じname属性の入力タグを追加した時に、そのタグに対するエラーメッセージとして自動的に表示されるようになります。このメソッドによりエラーメッセージをセットするタイミングは、入力タグを追加するより前でも後でもどちらのタイミングでもかまいません。
bindErrors public フォームの入力タグに対して表示するエラーメッセージを配列で復数一度にセットします。
bindErrorメソッドの復数項目一括設定版メソッドです。
getFormElements public 配下に存在するFormElementのインスタンスのみを全て検索し、配列として返します。
エレメント階層の末端までを再帰的に検索します。

継承メソッド()

メソッド名 アクセス 概要
__call public HtmlElementにおける__callは、エレメント属性の設定または取得の役割を果たします。
実際にクラスメソッドとして定義されているメソッド以外で"set"や"get"で始まるメソッドを呼び出すと、"set"や"get"に続く部分を属性名として扱い、その属性に値をセット、または値の取得を行います。

例えばsetIdメソッドを実行すると、id属性に対して引数で指定した値を設定します。
つまり、setId('example_id')と、setAttribute('id', 'example_id')は全く同じ動作となります。
create public HtmlElementのインスタンスを生成して返します。
このメソッドはPHP5.3で追加されている関数を使用しているため、PHP5.2以下では使用出来ません。
setIndentChar public HTML生成の際の自動インデントに使用する文字種を指定します。
初期値は半角スペース2個です。
getClone public 自信のインスタンスのコピーを生成し、新規インスタンスとして取得します。
setTagName public エレメントのタグ名を指定します。
getTagName public エレメントのタグ名として設定されている値を取得します。
addClass public エレメントのclass属性として設定したい値を追加します。
getClass public 現在設定されている、エレメントのclass属性値を取得します。
復数設定されている場合は全ての値が居半角スペースで区切られた文字列となります。
hasClass public 指定された値がclass属性値に含まれているかを確認します。
removeClass public 指定された値を、現在設定されているclass属性値から削除します。
clearClass public クラス属性値の設定をクリアします。
addStyle public エレメントのstyle属性値を追加します。
addStyles public エレメントのstyle属性値を復数一度に追加します。
getStyle public 現在設定されているstyle属性値を取得します。
addNode public エレメントの子ノードを追加します。
追加できるのはHtmlElementのインスタンスまたはテキストです。
addNodes public エレメントの子ノードを配列で指定し、復数一度に追加します。
追加できるのはHtmlElementのインスタンスまたはテキストです。
これはaddNodeメソッドを複数回実行するの同じ意味になります。
insertNode public 既に存在する子ノード群の任意の位置に新たなノードを挿しこむ用に追加します。
指定方法は数値インデックスまたは既に存在する子ノードに含まれるHtmlElementのインスタンスを指定します。前者の場合は指定したインデックス位置に既に存在する子ノードの手前に追加します。後者の場合は指定したインスタンスと同一のインスタンスが存在する場合に、そのインスタンスの手前に追加します。
指定したインデックスが存在しない、または指定したHtmElementのインスタンスが存在しない場合は末尾に追加します。
getNode public 指定したインデックス位置に存在する子ノードを取得します。
getNodes public 全ての子ノードを配列として取得します。
addElement public 子ノードとしてエレメントを追加します。
addElements public 子ノードとしてエレメントを配列で指定し、復数一度に追加します。
insertElement public 既に存在する子ノード群の任意の位置に新たなエレメントを挿しこむように追加します。
指定方法は数値インデックスまたは既に存在する子ノードに含まれるHtmlElementのインスタンスを指定します。前者の場合は指定したインデックス位置に既に存在する子ノードの手前に追加します。後者の場合は指定したインスタンスと同一のインスタンスが存在する場合に、そのインスタンスの手前に追加します。
指定したインデックスが存在しない、または指定したHtmElementのインスタンスが存在しない場合は末尾に追加します。
getElement public インデックスを指定し、子ノードからエレメントを取得します。
指定したインデックスが存在しない、または指定したインデックスのノードがHtmlElementのインスタンスではない場合はfalseが返ります。
getElementById public 子ノードの中からid属性指定で単一のエレメントを取得します。
指定したid属性のエレメントが存在しない、またはエレメントではない場合はnullを返します。
getElementsByTagName public 子ノードの中からタグ名指定でエレメントを取得します。タグ名が合致するエレメント全てを配列で返します。
getElementsByClass public 子ノードの中からクラス属性指定でエレメントを取得します。エレメントの持つクラス属性値のうち一つでも合致するエレメント全てを配列で返します。
getElements public すべての子ノードのうち、HtmlElementのインスタンスである物のみを全て配列として取得します。
removeElement public 子ノードから特定のエレメントを削除します。
削除対象は子ノードに含まれるHtmlElementのインスタンスを引数として指定します。同一インスタンスが存在すれば削除します。
addText public 子ノードとしてテキストノードを追加します。
setText public 子ノードとしてテキストノードを設定します。
addTextとの違いは一旦全ての子ノードをクリアするということです。setTextは子ノードの追加という概念ではなく、エレメントのコンテンツとしてテキストを設定するという考え方です。
clearNodes public 設定されている全ての子ノードをクリアし、何もない状態にします。
setAttribute public エレメントの属性値を設定します。
setAttributes public エレメエントの属性値を復数一度に設定します。
パラメーターには属性名と属性値の組み合わせの配列を指定します。
これは個々の属性の設定をsetAttributeメソッドにより複数回実行するの同じいみになります。
getAttribute public 設定されている属性の属性値を取得します。
getAttributes public 設定されている全ての属性値を取得します。
得られるのは属性名をキー、属性値が値として定義された配列です。
setIsEmptyTag public 空要素タグであるか否かを設定します。
空要素タグとは要素を持たないタグで、通常のタグが開始タグと終了タグで構成されるのに対し、空要素タグでは閉じタグが必要ありません。
空要素タグはHTMLの仕様として規定されたものであり、また主要な空要素はインスタンス生成時(タグ名指定時)に自動的に空要素として設定されるため、通常は実装者が意識する必要はありません。
isEmptyTag public 空要素タグであるか否かを取得します。
addEmptyTags public HtmlElementが内部的に持っている空要素タグのリストにタグ名を追加します。
静的メソッドであるため、設定を行う場合は初期化処理としてあらかじめ行います。
指定はタグ名を文字列で、または復数のタグ名を配列で指定します。
setIsReturnInner public 出力するHTMLで、開始タグの直後と終了タグの直前、子ノード間に改行を挿入するか否かを指定します。
これは人間の目に視覚的な見やすさのための設定であるため、処理内容やブラウザの表示に影響をあたえるものではありません。
isReturnInner public 開始タグの直後と終了タグの直前、子ノード間に改行を挿入するか否かの設定を取得します。
addReturnInnerNgTags public デフォルトでタグの内部に改行の挿入を禁止するタグ名を設定します。
これは、対象のタグ名の個々のHtmlElementに都度、setIsReturnInnerを実行するのと同じ意味になり、あらかじめ内部に改行を挿入したくないタグが決まっている場合はこのメソッドによりデフォルト設定として設定しておきます。
静的メソッドであるため、初期設定としてあらかじめ実行しておきます。

以下のタグはデフォルトで改行禁止に設定されています。
・a
・textarea
・label
・strong
・em
・object
getInnerHtml public 子ノード全てのHTMLを生成し、取得します。
得られるHTMLに自身のエレメントは含まれず、子ノード以下の最下層までHTMLとして取得することができます。
getHtml public エレメント以下、エレメント自身を含む全ての子ノードを最下層までを含めてHTMLを生成し、取得します。
render public エレメント以下、エレメント自身を含む全ての子ノードを最下層までを含めてHTMLを生成し、出力します。
これはgetHtmlで取得したHTMLをそのままechoするのと同じ意味になります。
addFromArray public 子ノード情報を定義した配列を元に子ノードを追加します。
このメソッドの詳細はマニュアルを参照してください。
fromArray public 子ノード情報を含むエレメント情報を定義した配列を元にHtmlElementのインスタンスを生成し、返します。
静的メソッドであるため、既に存在するインスタンスに子ノードを設定するaddFromArrayメソッドとは違い、親となるエレメント自身を新規インスタンスとして生成します。
このメソッドの詳細はマニュアルを参照してください。