core
db
html
utility
HtmlForm
クラス概要
HtmlFormはHtmlElementをFORMタグ生成用に特化したクラスです。
このクラスを利用するとFORMタグとフォームの入力タグを少ないコーディングで構築することができます。
フォームはFORMタグに各種の入力タグが含まれる形で構成されますが、通常は見栄えや入力のしやすさのために何らかのレイアウトを整形するためのタグが併用されます。HtmlFormでは何も考えなくてもあらかじめ簡易的なレイアウトタグが構成されるようになっています。
更に自由度の高いカスタムレイアウトの利用も可能です。
このクラスを利用すると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メソッドとは違い、親となるエレメント自身を新規インスタンスとして生成します。 このメソッドの詳細はマニュアルを参照してください。 |