Structures_DataGrid_Renderer_HTMLEditForm

Structures_DataGrid_Renderer_HTMLEditForm -- レコードを編集するための HTML フォーム

注意

このドライバは 実験的な もので、まだ正式にはリリースされていません。 CVS 版 でしか使用できません。

サポートする操作モード

このドライバは次の操作モードをサポートしています。

表 62-1このドライバがサポートする操作モード

モードサポートしている?
コンテナのサポートyes
出力バッファリングyes
ダイレクトレンダリングno
ストリーミングno
オブジェクトの永続化no

オプション

このドライバは、以下のオプションを受け付けます。

表 62-2このドライバのオプション

オプション説明デフォルト値
buildFooterboolフッタを作成するかどうか。true
buildHeaderboolヘッダを作成するかどうか。true
defaultCellValuestring空のセルに表示するデフォルトの値。null
defaultColumnValuesarray カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 array()
encodingstring 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 'ISO-8859-1'
excludeVarsarray作成される HTTP クエリから取り除く変数。array()
extraVarsarray作成される HTTP クエリに追加される変数。array()
fillWithEmptyRowsboolすべてのページで行数が同じになるようにするかどうか。false
hideColumnLinksarray デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 array()
numberAlignbool数値を右詰めにするかどうか。true
onMovestring ユーザがページを移動したりデータをソートしたりしたときの onclick/onsubmit イベント発生時にコールする Javascript 関数の名前。 この関数は、オブジェクトを引数として受け取ります。 このオブジェクトの形式は { page: <page>, sort: [{field: <field>, direction: <direction>}, ...], data: <user_data> } のようになります。このオプションを指定しても、 href 属性は削除されないことに注意しましょう。 href を無効にしたい場合 (AJAX など……) は、ハンドラ関数内で false を返すようにしなければなりません。 null
onMoveDatastring onMove に渡す引数のオブジェクトの、"data" に渡すデータ。JSON 形式のシリアル化は行わず、 そのままの形で "data" 属性に渡されます。 クォートやスラッシュなどを追加する処理は、自分で行ってください。 ''
textSubmitstring送信ボタンを表すラベル。'Submit'

例 62-2tableless レンダラおよび DHTMLRules を使用する例

<?php
// スタイルシートをインクルードし、適切なレイアウトで表示されるようにしておきましょう

require_once 'Structures/DataGrid.php';
require_once 'HTML/QuickForm/DHTMLRulesTableless.php';
require_once 'HTML/QuickForm/Renderer/Tableless.php';

$datagrid =& new Structures_DataGrid();
$datagrid->bind(...);  // ここでデータをバインドします

// フォームオブジェクトを作成する際に DHTMLRules を使用します
$form = new HTML_QuickForm_DHTMLRulesTableless('editform', null, null,
                                               null, null, true);
$form->removeAttribute('name');  // 妥当な XHTML を作成するため

// fieldset の legend を取得するために、ヘッダ要素を追加します
$form->addElement('header', 'header', 'EditForm example');

// fill() は、レンダラで必要なフォーム要素を作成します。
$datagrid->fill($form, null, 'HTMLEditForm');

// 送信ボタンは自分で追加しなければなりません
$form->addElement('submit', null, 'Submit');

// DHTMLRules の機能を説明するため、必須ルールを追加します
// ('id' という名前の要素があるものと仮定します)
$form->addRule('id', 'Please enter the ID.', 'required', null, 'client');

// onChange/onBlur イベントで検証を行うために、以下のコールが必要です
$form->getValidationScript();

// tableless レンダラのインスタンスを作成し、フォームを出力します
$renderer =& new HTML_QuickForm_Renderer_Tableless();
$form->accept($renderer);
echo $renderer->toHtml();
?>