Spec-Zone.ru › CodeIgniter 3

Класс HTML Таблицы

Класс Таблица предоставляет функции, которые позволяют вам автоматически генерировать HTML таблицы из массивов или наборов результатов базы данных.

  • Использование класса Таблица
    • Инициализация класса
    • Примеры
    • Изменение внешнего вида таблицы
  • Справочник по классу

Использование класса Таблица

Инициализация класса

Как и большинство других классов в CodeIgniter, класс Table инициализируется в вашем контроллере с помощью метода $this->load->library():

$this->load->library('table');

После загрузки объект библиотеки Table будет доступен с помощью:

$this->table

Примеры

Вот пример, демонстрирующий, как создать таблицу из многомерного массива. Обратите внимание, что первый индекс массива станет заголовком таблицы (или вы можете установить свои собственные заголовки, используя метод set_heading(), описанный ниже в справочнике по функции).

$this->load->library('table');

$data = array(
        array('Name', 'Color', 'Size'),
        array('Fred', 'Blue', 'Small'),
        array('Mary', 'Red', 'Large'),
        array('John', 'Green', 'Medium')
);

echo $this->table->generate($data);

Вот пример таблицы, созданной из результата запроса базы данных. Класс таблицы автоматически сгенерирует заголовки на основе имен таблиц (или вы можете установить свои собственные заголовки, используя метод set_heading(), описанный ниже в справочнике по классу).

$this->load->library('table');

$query = $this->db->query('SELECT * FROM my_table');

echo $this->table->generate($query);

Вот пример того, как создать таблицу с использованием отдельных параметров:

$this->load->library('table');

$this->table->set_heading('Name', 'Color', 'Size');

$this->table->add_row('Fred', 'Blue', 'Small');
$this->table->add_row('Mary', 'Red', 'Large');
$this->table->add_row('John', 'Green', 'Medium');

echo $this->table->generate();

Вот тот же пример, но вместо отдельных параметров используются массивы:

$this->load->library('table');

$this->table->set_heading(array('Name', 'Color', 'Size'));

$this->table->add_row(array('Fred', 'Blue', 'Small'));
$this->table->add_row(array('Mary', 'Red', 'Large'));
$this->table->add_row(array('John', 'Green', 'Medium'));

echo $this->table->generate();

Изменение внешнего вида таблицы

Класс Table позволяет вам задать шаблон таблицы, с помощью которого вы можете указать дизайн макета. Вот прототип шаблона:

$template = array(
        '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>',

        '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>'
);

$this->table->set_template($template);

Примечание

Вы заметите, что в шаблоне есть две группы блоков «строка». Они позволяют создавать чередующиеся цвета строк или элементы дизайна, которые чередуются с каждой итерацией данных строки.

Вам НЕ требуется отправлять полный шаблон. Если вам нужно изменить только части макета, вы можете просто отправить эти элементы. В этом примере изменяется только открывающий тег таблицы:

$template = array(
        'table_open' => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">'
);

$this->table->set_template($template);

Вы также можете задать значения по умолчанию в файле конфигурации.

Справочник по классу

class CI_Table
$function = NULL

Позволяет указать встроенную PHP функцию или объект массива функций, которые будут применяться ко всем данным ячейки.

$this->load->library('table');

$this->table->set_heading('Name', 'Color', 'Size');
$this->table->add_row('Fred', '<strong>Blue</strong>', 'Small');

$this->table->function = 'htmlspecialchars';
echo $this->table->generate();

В приведенном выше примере все данные ячейки будут переданы через функцию PHP htmlspecialchars(), что приведет к результату:

<td>Fred</td><td>&lt;strong&gt;Blue&lt;/strong&gt;</td><td>Small</td>
generate([$table_data = NULL])
Параметры:
  • $table_data (mixed) – Данные для заполнения строк таблицы
Возвращает:

HTML таблица

Тип возвращаемого значения:

строка

Возвращает строку, содержащую сгенерированную таблицу. Принимает необязательный параметр, который может быть массивом или объектом результата базы данных.

set_caption($caption)
Параметры:
  • $caption (строка) – Подпись таблицы
Возвращает:

экземпляр CI_Table (цепление методов)

Тип возвращаемого значения:

CI_Table

Позволяет добавить подпись к таблице.

$this->table->set_caption('Colors');
set_heading([$args = array()[, ...]])
Параметры:
  • $args (смешанный тип) – Массив или несколько строк, содержащих названия столбцов таблицы
Возвращает:

экземпляр CI_Table (цепление методов)

Тип возвращаемого значения:

CI_Table

Позволяет установить заголовок таблицы. Вы можете передать массив или отдельные параметры:

$this->table->set_heading('Name', 'Color', 'Size');

$this->table->set_heading(array('Name', 'Color', 'Size'));
add_row([$args = array()[, ...]])
Параметры:
  • $args (смешанный тип) – Массив или несколько строк, содержащих значения строки
Возвращает:

экземпляр CI_Table (цепление методов)

Тип возвращаемого значения:

CI_Table

Позволяет добавить строку в вашу таблицу. Вы можете передать массив или отдельные параметры:

$this->table->add_row('Blue', 'Red', 'Green');

$this->table->add_row(array('Blue', 'Red', 'Green'));

Если вы хотите установить атрибуты тега отдельной ячейки, вы можете использовать ассоциативный массив для этой ячейки. Ассоциативный ключ data определяет данные ячейки. Любые другие пары ключ => значение добавляются в качестве атрибутов тега key=’val’:

$cell = array('data' => 'Blue', 'class' => 'highlight', 'colspan' => 2);
$this->table->add_row($cell, 'Red', 'Green');

// generates
// <td class='highlight' colspan='2'>Blue</td><td>Red</td><td>Green</td>
make_columns([$array = array()[, $col_limit = 0]])
Параметры:
  • $array (массив) – Массив, содержащий данные нескольких строк
  • $col_limit (целое число) – Количество столбцов в таблице
Возвращает:

Массив HTML столбцов таблицы

Тип возвращаемого значения:

массив

Этот метод принимает одномерный массив в качестве входных данных и создает многомерный массив с глубиной, равной желаемому количеству столбцов. Это позволяет отобразить один массив со многими элементами в таблице, которая имеет фиксированное количество столбцов. Рассмотрим этот пример:

$list = array('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve');

$new_list = $this->table->make_columns($list, 3);

$this->table->generate($new_list);

// 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>
set_template($template)
Параметры:
  • $template (массив) – Ассоциативный массив, содержащий значения шаблона
Возвращает:

ИСТИНА при успехе, ЛОЖЬ при ошибке

Тип возвращаемого значения:

bool

Позволяет установить ваш шаблон. Вы можете передать полный или частичный шаблон.

$template = array(
        'table_open'  => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">'
);

$this->table->set_template($template);
set_empty($value)
Параметры:
  • $value (смешанный тип) – Значение для пустых ячеек
Возвращает:

экземпляр CI_Table (цепление методов)

Тип возвращаемого значения:

CI_Table

Позволяет установить значение по умолчанию для использования в любых пустых ячейках таблицы. Например, вы можете установить неразрывный пробел:

$this->table->set_empty("&nbsp;");
clear()
Возвращает: экземпляр CI_Table (цепление методов)
Тип возвращаемого значения: CI_Table

Позволяет очистить заголовок таблицы и данные строк. Если вам нужно отобразить несколько таблиц с разными данными, вы должны вызвать этот метод после того, как каждая таблица была сгенерирована, чтобы очистить информацию предыдущей таблицы. Пример:

$this->load->library('table');

$this->table->set_heading('Name', 'Color', 'Size');
$this->table->add_row('Fred', 'Blue', 'Small');
$this->table->add_row('Mary', 'Red', 'Large');
$this->table->add_row('John', 'Green', 'Medium');

echo $this->table->generate();

$this->table->clear();

$this->table->set_heading('Name', 'Day', 'Delivery');
$this->table->add_row('Fred', 'Wednesday', 'Express');
$this->table->add_row('Mary', 'Monday', 'Air');
$this->table->add_row('John', 'Saturday', 'Overnight');

echo $this->table->generate();

© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/userguide3/libraries/table.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API