PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

サンプル - 複雑版 | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

サンプル - 複雑版

サンプル - 複雑版 – さまざまな機能を使用してデータグリッドを作成する

Description

ユーザ管理システムのインターフェイス

この例では、ユーザ管理システムのインターフェイスを作成する方法を示します。 データベースへのアクセスの処理には DB_DataObject パッケージを使用します。

ユーザ管理システムの例

<?php
require_once 'Structures/DataGrid.php';
require_once 
'HTML/Table.php';
require_once 
'myclasses/User.php';

// DataObject のインスタンスを作成します。これがデータソースのコンテナとなります
$user = new User_DataObject();

// データグリッドを作成します
$datagrid =& new Structures_DataGrid(20); // 1 ページあたりのレコード数を 20 件とします

// データグリッドの、デフォルトのソート方法を指定します
$datagrid->setDefaultSort(array('lname' => 'ASC'));

// データソースコンテナをバインドします
$test $datagrid->bind($user);
if (
PEAR::isError($test)) {
    echo 
$test->getMessage(); 
}

// カラムを定義します
$datagrid->addColumn(new Structures_DataGrid_Column(nullnullnull, array('width' => '10'), null'printCheckbox()'));
$datagrid->addColumn(new Structures_DataGrid_Column('Name'null'lname', array('width' => '40%'), null'printFullName()'));
$datagrid->addColumn(new Structures_DataGrid_Column('Username''username''username', array('width' => '20%')));
$datagrid->addColumn(new Structures_DataGrid_Column('Role'nullnull, array('width' => '20%'), null'printRoleSelector()'));
$datagrid->addColumn(new Structures_DataGrid_Column('Edit'nullnull, array('width' => '20%'), null'printEditLink()'));

// 見た目を定義します
$tableAttribs = array(
    
'width' => '100%',
    
'cellspacing' => '0',
    
'cellpadding' => '4',
    
'class' => 'datagrid'
);
$headerAttribs = array(
    
'bgcolor' => '#CCCCCC'
);
$evenRowAttribs = array(
    
'bgcolor' => '#FFFFFF'
);
$oddRowAttribs = array(
    
'bgcolor' => '#EEEEEE'
);
$rendererOptions = array(
    
'sortIconASC' => '&uArr;',
    
'sortIconDESC' => '&dArr;'
);

// HTML_Table を作成します
$table = new HTML_Table($tableAttribs);
$tableHeader =& $table->getHeader();
$tableBody =& $table->getBody();

// 指定したレンダリングオプションで、HTML_Table にデータを投入します
$test $datagrid->fill($table$rendererOptions);
if (
PEAR::isError($test)) {
    echo 
$test->getMessage(); 
}


// 見出し行の属性を設定します
$tableHeader->setRowAttributes(0$headerAttribs);

// 一行ごとに行属性を切り替えます
$tableBody->altRowAttributes(0$evenRowAttribs$oddRowAttribstrue);

// テーブルおよびページ処理リンクを出力します
echo $table->toHtml();

// ページ処理リンクを表示します
$test $datagrid->render(DATAGRID_RENDER_PAGER);
if (
PEAR::isError($test)) {
    echo 
$test->getMessage(); 
}


function 
printCheckbox($params)
{
    
extract($params);
    return 
'<input type="checkbox" name="idList[]" value="' $record['id'] . '">';
}
function 
printFullName($params)
{
    
extract($params);
    return 
$record['fname'] . ' ' $record['lname'];
}
function 
printRoleSelector($params)
{
    global 
$roleList;

    
extract($params);
    
    
$html '<select name="role_id">';
    foreach (
$roleList as $roleId => $roleName) {
        
$html .= "<option value=\"$roleId\">$roleName</option>\n";
    }
    
$html .= '</select>';
    
    return 
$html;
}
function 
printEditLink($params)
{
    
extract($params);
    return 
'<a href="edit.php?id=' $record['id'] . '">Edit</a>';
}
?>
忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「サンプル - 複雑版」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | サンプル - 複雑版」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: