Класс HTML Таблица
Класс Таблица предоставляет методы, которые позволяют вам автоматически генерировать HTML таблицы из массивов или наборов результатов базы данных.
Использование класса Таблица
Инициализация класса
Класс Table не предоставляется как сервис и должен быть инициализирован стандартным образом, например:
$table = new \CodeIgniter\View\Table();
Примеры
Вот пример, показывающий, как создать таблицу из многомерного массива. Обратите внимание, что первый индекс массива станет заголовком таблицы (или вы можете установить свои собственные заголовки, используя метод setHeading() , описанный в справочнике по функциям ниже).
$table = new \CodeIgniter\View\Table();
$data = [
['Name', 'Color', 'Size'],
['Fred', 'Blue', 'Small'],
['Mary', 'Red', 'Large'],
['John', 'Green', 'Medium'],
];
echo $table->generate($data);
Вот пример таблицы, созданной из результата запроса к базе данных. Класс таблицы автоматически сгенерирует заголовки на основе имён таблиц (или вы можете установить свои собственные заголовки, используя метод setHeading() , описанный в справочнике по классу ниже).
$table = new \CodeIgniter\View\Table();
$query = $db->query('SELECT * FROM my_table');
echo $table->generate($query);
Вот пример того, как можно создать таблицу, используя отдельные параметры:
$table = new \CodeIgniter\View\Table();
$table->setHeading('Name', 'Color', 'Size');
$table->addRow('Fred', 'Blue', 'Small');
$table->addRow('Mary', 'Red', 'Large');
$table->addRow('John', 'Green', 'Medium');
echo $table->generate();
Вот тот же пример, только вместо отдельных параметров используются массивы:
$table = new \CodeIgniter\View\Table();
$table->setHeading(array('Name', 'Color', 'Size'));
$table->addRow(['Fred', 'Blue', 'Small']);
$table->addRow(['Mary', 'Red', 'Large']);
$table->addRow(['John', 'Green', 'Medium']);
echo $table->generate();
Изменение внешнего вида таблицы
Класс Таблица позволяет вам задать шаблон таблицы, с помощью которого вы можете указать дизайн вашего макета. Вот прототип шаблона:
$template = [
'table_open' => '<table border="0" cellpadding="4" cellspacing="0">',
'thead_open' => '<thead>',
'thead_close' => '</thead>',
'heading_row_start' => '<tr>',
'heading_row_end' => '</tr>',
'heading_cell_start' => '<th>',
'heading_cell_end' => '</th>',
'tfoot_open' => '<tfoot>',
'tfoot_close' => '</tfoot>',
'footing_row_start' => '<tr>',
'footing_row_end' => '</tr>',
'footing_cell_start' => '<td>',
'footing_cell_end' => '</td>',
'tbody_open' => '<tbody>',
'tbody_close' => '</tbody>',
'row_start' => '<tr>',
'row_end' => '</tr>',
'cell_start' => '<td>',
'cell_end' => '</td>',
'row_alt_start' => '<tr>',
'row_alt_end' => '</tr>',
'cell_alt_start' => '<td>',
'cell_alt_end' => '</td>',
'table_close' => '</table>'
];
$table->setTemplate($template);
Примечание
Вы заметите, что в шаблоне есть два набора блоков "строка". Это позволяет создавать чередующиеся цвета строк или элементы дизайна, которые чередуются с каждой итерацией данных строки.
Вы НЕ обязаны предоставлять полный шаблон. Если вам нужно изменить только части макета, вы можете просто предоставить эти элементы. В этом примере изменяется только открывающий тег таблицы:
$template = [
'table_open' => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">'
];
$table->setTemplate($template);
Вы также можете установить значения по умолчанию, передав массив параметров шаблона в конструктор класса Table.:
$customSettings = [
'table_open' => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">'
];
$table = new \CodeIgniter\View\Table($customSettings);
Справочник по классу
-
class Table -
-
$function = null -
Позволяет указать нативную функцию PHP или объект массива функций, которые будут применяться ко всем данным ячейки.
$table = new \CodeIgniter\View\Table(); $table->setHeading('Name', 'Color', 'Size'); $table->addRow('Fred', '<strong>Blue</strong>', 'Small'); $table->function = 'htmlspecialchars'; echo $table->generate();В приведённом выше примере все данные ячейки будут переданы в функцию PHP
htmlspecialchars(), что приведёт к:<td>Fred</td><td><strong>Blue</strong></td><td>Small</td>
-
generate([$tableData = null]) -
Параметры: - $tableData (mixed) – Данные для заполнения строк таблицы
Возвращает: HTML таблица
Тип возвращаемого значения: string
Возвращает строку, содержащую сгенерированную таблицу. Принимает необязательный параметр, который может быть массивом или объектом результата базы данных.
-
setCaption($caption) -
Параметры: - $caption (string) – Заголовок таблицы
Возвращает: Экземпляр таблицы (цепочка методов)
Тип возвращаемого значения: Позволяет добавить заголовок к таблице.
$table->setCaption('Colors');
-
setHeading([$args = [][, ...]]) -
Параметры: - $args (mixed) – Массив или несколько строк, содержащие заголовки столбцов таблицы
Возвращает: Экземпляр таблицы (цепочка методов)
Тип возвращаемого значения: Позволяет установить заголовок таблицы. Вы можете передать массив или отдельные параметры:
$table->setHeading('Name', 'Color', 'Size'); // or $table->setHeading(['Name', 'Color', 'Size']);
-
setFooting([$args = [][, ...]]) -
Параметры: - $args (mixed) – Массив или несколько строк, содержащие значения подвала таблицы
Возвращает: Экземпляр таблицы (цепочка методов)
Тип возвращаемого значения: Позволяет установить подвал таблицы. Вы можете передать массив или отдельные параметры:
$table->setFooting('Subtotal', $subtotal, $notes); // or $table->setFooting(['Subtotal', $subtotal, $notes]);
-
addRow([$args = [][, ...]]) -
Параметры: - $args (mixed) – Массив или несколько строк, содержащие значения строки
Возвращает: Экземпляр таблицы (цепочка методов)
Тип возвращаемого значения: Позволяет добавить строку в таблицу. Вы можете передать массив или отдельные параметры:
$table->addRow('Blue', 'Red', 'Green'); // or $table->addRow(['Blue', 'Red', 'Green']);Если требуется установить атрибуты тега отдельной ячейки, можно использовать ассоциативный массив для этой ячейки. Ассоциативный ключ data определяет данные ячейки. Любые другие пары ключ => значение добавляются как атрибуты тега key=’val’:
$cell = ['data' => 'Blue', 'class' => 'highlight', 'colspan' => 2]; $table->addRow($cell, 'Red', 'Green'); // generates // <td class='highlight' colspan='2'>Blue</td><td>Red</td><td>Green</td>
-
makeColumns([$array = [][, $columnLimit = 0]]) -
Параметры: - $array (array) – Массив, содержащий данные нескольких строк
- $columnLimit (int) – Количество столбцов в таблице
Возвращает: Массив HTML столбцов таблицы
Тип возвращаемого значения: array
Этот метод принимает одномерный массив в качестве входных данных и создаёт многомерный массив с глубиной, равной требуемому количеству столбцов. Это позволяет отобразить один массив со многими элементами в таблице с фиксированным количеством столбцов. Рассмотрим этот пример:
$list = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve']; $newList = $table->makeColumns($list, 3); $table->generate($newList); // Generates a table with this prototype <table border="0" cellpadding="4" cellspacing="0"> <tr> <td>one</td><td>two</td><td>three</td> </tr><tr> <td>four</td><td>five</td><td>six</td> </tr><tr> <td>seven</td><td>eight</td><td>nine</td> </tr><tr> <td>ten</td><td>eleven</td><td>twelve</td></tr> </table>
-
-
setTemplate($template) -
Параметры: - $template (array) – Ассоциативный массив, содержащий значения шаблона
Возвращаемое значение: true при успехе, false при ошибке
Тип возвращаемого значения: bool
Позволяет установить шаблон. Можно передать полный или частичный шаблон.
$template = [ 'table_open' => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">' ]; $table->setTemplate($template);
-
setEmpty($value) -
Параметры: - $value (mixed) – Значение для пустых ячеек
Возвращаемое значение: Экземпляр таблицы (цепление методов)
Тип возвращаемого значения: Позволяет установить значение по умолчанию для использования в пустых ячейках таблицы. Например, можно установить неразрывный пробел:
$table->setEmpty(" ");
-
clear() -
Возвращаемое значение: Экземпляр таблицы (цепление методов) Тип возвращаемого значения: Table Позволяет очистить заголовок таблицы, данные строк и подпись. Если нужно отобразить несколько таблиц с разными данными, необходимо вызывать этот метод после генерации каждой таблицы, чтобы очистить информацию о предыдущей таблице.
Пример
$table = new \CodeIgniter\View\Table(); $table->setCaption('Preferences') ->setHeading('Name', 'Color', 'Size') ->addRow('Fred', 'Blue', 'Small') ->addRow('Mary', 'Red', 'Large') ->addRow('John', 'Green', 'Medium'); echo $table->generate(); $table->clear(); $table->setCaption('Shipping') ->setHeading('Name', 'Day', 'Delivery') ->addRow('Fred', 'Wednesday', 'Express') ->addRow('Mary', 'Monday', 'Air') ->addRow('John', 'Saturday', 'Overnight'); echo $table->generate();
-
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/user_guide/outgoing/table.html