このドライバは 実験的な もので、まだ正式にはリリースされていません。 CVS 版 でしか使用できません。
このドライバは次の操作モードをサポートしています。
| モード | サポートしている? |
|---|---|
| コンテナのサポート | yes |
| 出力バッファリング | yes |
| ダイレクトレンダリング | no |
| ストリーミング | no |
| オブジェクトの永続化 | no |
このドライバは、以下のオプションを受け付けます。
| オプション | 型 | 説明 | デフォルト値 |
|---|---|---|---|
| buildFooter | bool | フッタを作成するかどうか。 | true |
| buildHeader | bool | ヘッダを作成するかどうか。 | true |
| defaultCellValue | string | 空のセルに表示するデフォルトの値。 | null |
| defaultColumnValues | array | カラムごとに指定するセルのデフォルト値。 array(fieldName => value, ...) 形式の配列となります。 | array() |
| encoding | string | 内容のエンコーディング。mbstring 拡張モジュールが使用可能な場合、 デフォルト値は mb_internal_encoding() から取得します。 それ以外の場合のデフォルト値は ISO-8859-1 となります。 | 'ISO-8859-1' |
| excludeVars | array | 作成される HTTP クエリから取り除く変数。 | array() |
| extraVars | array | 作成される HTTP クエリに追加される変数。 | array() |
| fillWithEmptyRows | bool | すべてのページで行数が同じになるようにするかどうか。 | false |
| hideColumnLinks | array | デフォルトでは、すべてのカラムで並べ替えリンクが有効になります。 このオプションを使用すると、指定したカラムの並べ替えリンクを無効にできます。 array(fieldName, ...) 形式の配列で指定します。 このオプションは、並べ替えをサポートしているドライバでのみ有効です。 | array() |
| numberAlign | bool | 数値を右詰めにするかどうか。 | true |
| onMove | string | ユーザがページを移動したりデータをソートしたりしたときの onclick/onsubmit イベント発生時にコールする Javascript 関数の名前。 この関数は、オブジェクトを引数として受け取ります。 このオブジェクトの形式は { page: <page>, sort: [{field: <field>, direction: <direction>}, ...], data: <user_data> } のようになります。このオプションを指定しても、 href 属性は削除されないことに注意しましょう。 href を無効にしたい場合 (AJAX など……) は、ハンドラ関数内で false を返すようにしなければなりません。 | null |
| onMoveData | string | onMove に渡す引数のオブジェクトの、"data" に渡すデータ。JSON 形式のシリアル化は行わず、 そのままの形で "data" 属性に渡されます。 クォートやスラッシュなどを追加する処理は、自分で行ってください。 | '' |
| textSubmit | string | 送信ボタンを表すラベル。 | 'Submit' |
基本的な使用法
<?php
require_once 'Structures/DataGrid.php';
$datagrid =& new Structures_DataGrid();
$datagrid->bind(...); // bind your data here
$datagrid->setRenderer('HTMLEditForm');
$datagrid->render();
?>
tableless レンダラおよび 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();
?>