Bshe/manual/Bshe_View/doc/Programmer/Assign/Resource/table [Bshe利用マニュアル] - Wiki

Page Top
テーブル構造へのデータセット anchor.png

Webアプリケーション上では、しばしば、テーブルのような繰り返し構造に対して値をセットする必要が生じます。
Bshe_Viewでは、

  • 1方向のtable繰り返し
  • 2方向のxtable繰り返し
    のいずれの形でも繰り返し表現ができるようになっており、また、いずれの繰り返しも、多重テーブルとして配置することが可能です。
    また、table繰り返しもxtable繰り返しもプログラム上での値のセット方法は同じ形になっており、Webデザイン側でいずれの表現方法でも選択できるようになっています。
Page Top
テーブルへのデータの基本構造1 anchor.png

テーブルへのデータセットでもっとも単純な、値のみを配列でセットする方法を示します。

データセット用の配列の基本構造は以下のようになります。

 array(
  データ番号 =>
    array(
      セットする値キー => 値
    )
)

ここで、

  • データ番号は0から始まる連番になります。
  • セットする値キーは「key='bshe::table:col:tablevalues:cel1'」のように指定される各データセットのキー属性の「cel1」にあたる部分の文字列です。
  • 値は、実際にセットされる値を示します。(この記載の場合、値がセットされる先は単純に値をセットする方法と同等の処理にて決定されます)

以下のようなHTMLを用意し

<table key='bshe::table:table:tablevalues' border=1>
  <tr>
    <th>セル1</th>
    <th>セル2</th>
    <th>セル3</th>
  </tr>
  <tr key='bshe::table:row:tablevalues'>
    <td key='bshe::table:col:tablevalues:cel1'>a</td>
    <td key='bshe::table:col:tablevalues:cel2'>a</td>
    <td key='bshe::table:col:tablevalues:cel3'>a</td>
  </tr>
</table>

次のように配列をセットすると

$view->tablevalues =
 array(
   0 =>
     array(
       'cel1' => 'a1',
       'cel2' => 'a2',
       'cel3' => 'a3',
     ),
   1 =>
     array(
       'cel1' => 'b1',
       'cel2' => 'b2',
       'cel3' => 'b3',
     )
 )

次のようなHTMLが生成されます。

<table border=1>
  <tr>
    <th>セル1</th>
    <th>セル2</th>
    <th>セル3</th>
  </tr>
  <tr >
    <td >a1</td>
    <td >a2</td>
    <td >a3</td>
  </tr>
  <tr >
    <td >b1</td>
    <td >b2</td>
    <td >b3</td>
  </tr>
</table>
Page Top
テーブルへのデータの基本構造2(属性を含んだ構造) anchor.png

テーブルへのデータセット各繰り返しに対して、属性などの情報もセットしたい場合のデータ構造です。

データセット用の配列の基本構造は以下のようになります。

array(
  データ番号 =>
    array(
      セットする値キー => セット対象に対する処理配列,
      '_assigns' => 行タグに対する処理配列
    )
  '_assigns' => テーブルタグに対する処理配列
)

ここで、

  • データ番号は0から始まる連番になります。
  • セットする値キーは「key='bshe::table:col:tablevalues:cel1'」のように指定される各データセットのキー属性の「cel1」にあたる部分の文字列です。
  • 各処理配列は、単純な値の属性へのセット属性の削除タグの削除で指定する処理配列を複数配列化したものになります。

以下のようなHTMLを用意し

<table key='bshe::table:table:tablevalues' border=1>
  <tr>
    <th>セル1</th>
    <th>セル2</th>
    <th>セル3</th>
  </tr>
  <tr key='bshe::table:row:tablevalues'>
    <td key='bshe::table:col:tablevalues:cel1'>a</td>
    <td key='bshe::table:col:tablevalues:cel2'>a</td>
    <td key='bshe::table:col:tablevalues:cel3'>a</td>
  </tr>
</table>

次のように配列をセットすると

$view->tablevalues =
 array(
   0 =>
     array(
       'cel1' => 
         array(
           array('a' => array('innerHTML' => 'a1'),
           array('a' => array('bordercolor' ,'#FF0000')
         ),
       'cel2' => 'a2',
       'cel3' => 'a3',
       '_assigns' => 
         array(
           array('a' => array('bordercolor' ,'#FFFF00')
         )
     )
 )

次のようなHTMLが生成されます。

<table border=1>
  <tr>
    <th>セル1</th>
    <th>セル2</th>
    <th>セル3</th>
  </tr>
  <tr bordercolor="#FFFF00">
    <td bordercolor="#FF0000">a1</td>
    <td >a2</td>
    <td >a3</td>
  </tr>
</table>
Page Top
多重テーブルへのデータの構造 anchor.png

多重テーブルへデータをセットすることも可能です。

データセット用の配列の基本構造は以下のようになります。

 array(
  データ番号 =>
    array(
      セットする値キー => 値,
      '_values' => サブテーブルの配列
    )
)

ここで、

  • データ番号は0から始まる連番になります。
  • セットする値キーは「key='bshe::table:col:tablevalues:cel1'」のように指定される各データセットのキー属性の「cel1」にあたる部分の文字列です。
  • 値は、実際にセットされる値を示します。(この記載の場合、値がセットされる先は単純に値をセットする方法と同等の処理にて決定されます)
  • サブテーブルのデータ配列は、ここまでで記載した、テーブルデータの配列と同じ構造の配列をサブテーブルキーをキーとした配列となります。また、サブテーブルは1つのデータ番号に対して複数セットすることも可能です。

以下のようなHTMLを用意し

<table key='bshe::table:table:tablevalues' border=1>
  <tr>
    <th>セル1</th>
    <th>セル2</th>
    <th>セル3</th>
  </tr>
  <tr key='bshe::table:row:tablevalues'>
    <td key='bshe::table:col:tablevalues:cel1'>a</td>
    <td key='bshe::table:col:tablevalues:cel2'>a</td>
    <td>
      <table key='bshe::table:subtable:sub1' border=1>
        <tr key='bshe::table:row:sub1'>
          <td key='bshe::table:col:sub1:cel1'>a</td>
          <td key='bshe::table:col:sub1:cel2'>a</td>
          <td key='bshe::table:col:sub1:cel3'>a</td>
        </tr>
      </table>
    </td>
  </tr>
</table>

次のように配列をセットすると

$view->tablevalues =
 array(
   0 =>
     array(
       'cel1' => 'a1',
       'cel2' => 'a2',
       '_values' =>
         array(
           'sub1' => 
             array(
               0 =>
                 array(
                   'cel1' => 'aa0',
                   'cel2' => 'aa1',
                   'cel3' => 'aa2'
                 ),
               1 =>
                 array(
                   'cel1' => 'aaa0',
                   'cel2' => 'aaa1',
                   'cel3' => 'aaa2'
                 )
               ),
               '_assigns' =>
                 array(
                   // 色を指定
                   array( 'a' => array( 'bordercolor' ,'#0000FF'))
                 )
             )
         )
     )
 )

次のようなHTMLが生成されます。

<table border=1>
  <tr>
    <th>セル1</th>
    <th>セル2</th>
    <th>セル3</th>
  </tr>
  <tr >
    <td >a1</td>
    <td >a2</td>
    <td >
      <table bordercolor="#0000FF" border=1>
        <tr >
          <td >aa0</td>
          <td >aa1</td>
          <td >aa2</td>
        </tr>
        <tr >
          <td >aaa0</td>
          <td >aaa1</td>
          <td >aaa2</td>
        </tr>
      </table>
    </td>
  </tr>
</table>

Front page   Diff Backup Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Counter: 555, today: 1, yesterday: 0
Last-modified: 2009-01-20 (Tue) 00:59:24 (JST) (1215d) by abe