HTML テーブルの PHP クラス: 奇妙な属性の割り当て
P粉384679266
2023-09-06 00:38:07
<p>HTML テーブルを構築するクラスには、テーブルをレンダリングするこのメソッドがあります。特定の条件 (インデント、終了タグ、データ表現など) での HTML 属性の割り当てを除いて、すべてが正常に動作します。セルのデータを設定するときは、setData() を呼び出して 3 つのパラメーターを受け取り、次のように使用します。 3 番目のパラメーター (セル プロパティ) をどのように設定しているかに注目してください: </p>
<p><strong>メソッド定義: </strong></p>
<pre class="brush:php;toolbar:false;">public function setData(
配列 $data、
配列 $row_attributes = [],
配列 $cell_attributes = []
): ブール値 {
// コード
}</pre>
<p><strong>電話: </strong></p>
<pre class="brush:php;toolbar:false;">$table->setData(
$ページネーション->結果セット、
[], // 行属性
array( // セルの属性
array(), // 行 1 (インデックス 0)
array( // row2 (インデックス 1)
["id"=>"R2C1id"], // 行 2、セル 1
["id"=>"R2C2id", "onclick"=>"R2C2_onclick();"], // 行 2、セル 2
)、
array( // 行 3
[]、
[]、
["id"=>"R3C3id", "selected"=>"selected"], // 行 3、セル 3
[]、
[]、
[]、
[]
)
)
);</pre>
<p>この例では、テーブルには 7 つの列があります。 </p>
<p>ここでは HTML 出力が表示されます。 2 行目と 3 行目のセルのプロパティに注目してください: </p>
<pre class="brush:php;toolbar:false;"><div class='table-body'>
<div class='テーブル行'>
<div class='テーブル行セル'>1</div>
<div class='table-row-cell'>Consumidor Final</div>
<div class='table-row-cell'>Consumidor Final</div>
<div class='テーブル行セル'></div>
<div class='テーブル行セル'>1</div>
<div class='テーブル行セル'></div>
<div class='テーブル行セル'></div>
</div>
<div class='テーブル行'>
<div class='table-row-cell' id='R2C1id'>2</div>
<div class='table-row-cell' id='R2C2id' onclick='R2C2_onclick();'>Prueba SRL</div>
<div class='table-row-cell' 0='Array' 1='Array'>Tu Prueba</div>
<div class='テーブル行セル' 0='配列' 1='配列'>12345678901</div>
<div class='テーブル行セル' 0='配列' 1='配列'>1</div>
<div class='テーブル行セル' 0='配列' 1='配列'></div>
<div class='テーブル行セル' 0='配列' 1='配列'></div>
</div>
<div class='テーブル行'>
<div class='テーブル行セル'>3</div>
<div class='table-row-cell'>Otra Prueba SA</div>
<div class='table-row-cell' id='R3C3id' selected='selected'>Prueba 2</div>
<div class='テーブル行セル'>12345678902</div>
<div class='テーブル行セル'>1</div>
<div class='テーブル行セル'></div>
<div class='テーブル行セル'></div>
</div>
</div></pre>
<p>これは、これらすべてを行うために使用するコードです。セルのレンダリングのコード スニペットとプロパティの処理方法を示します。 </p>
<p>セルのレンダリング: </strong></p>
<pre class="brush:php;toolbar:false;">// セルを処理します
$row_counter = 0;
foreach ($this->data as $data) { // 行
$row_build = "";
$cell_counter = 0;
foreach ($data as $cell_data) { // セル
if ($cell_counter < $col_count) {
$row_build .= $this->getHtmlDiv(
$html_cell_class、
$cell_data ?? ""、
$this->getHtmlAttributes("セル", $row_counter, $cell_counter),
3
);
}
$cell_counter ;
}
// $cell_counter ;
// 行を保持するために空のセルを完成させます: 完全な行にホバーします
while ($cell_counter < $col_count) {
$row_build .= $this->getHtmlDiv(
$html_cell_class、
「」、
$this->getHtmlAttributes("セル", $row_counter, $cell_counter),
3
);
$cell_counter ;
}
$body_build .= $this->getHtmlDiv(
$html_row_class、
$row_build、
$this->getHtmlAttributes("row", $row_counter, 0),
2、
真実
);
$row_counter ;
}</pre>
<p><strong>属性メソッド:</strong></p>
<pre class="brush:php;toolbar:false;">プライベート関数 getHtmlAttributes(string $section, int $row, int $column): array
{
if (count($this->html_attributes[$section]) > 0) {
if (array_key_exists($row, $this->html_attributes[$section])) {
if ($section === "セル") {
if (array_key_exists($column, $this->html_attributes[$section][$row])) {
return $this->html_attributes[$section][$row][$column];
}
}
return $this->html_attributes[$section][$row];
}
}
戻る [];
}</pre>
<p>何が問題ですか?ありがとう。 </p>
さて、質問を投稿してコードを選択すると、答えが表示されました。メソッド
リーリーgetHtmlAttributes()
にelse
条件がありません。