Класс таблиц предоставляет функции, которые позволяют вам автоматически генерировать HTML-таблицы из массивов или результатов выборок базы данных.
Инициализация класса
Как и большинство других классов в CodeIgniter, класс таблиц инициализируется в вашем контроллере посредством функции $this->load->library:
$this->load->library('table');
Загруженный объект класса таблиц доступен как $this->table
Примеры
Вот пример, показывающий как вы можете создать таблицу из многомерного массива. Обратите внимание, что первый индекс массива станет заголовком таблицы (также вы можете установить собственную шапку с функцией set_heading(), описанной ниже в этом руководстве).
Вот пример таблицы, созданный из результата выборки базы данных. Класс таблиц автоматически генерирует заголовки, основываясь на именах таблиц(также вы можете воспользоваться set_heading()).
$this->load->library('table');
$query = $this->db->query("SELECT * FROM my_table");
echo $this->table->generate($query);
Вот пример, показывающий вам как вы можете создать таблицу, используя раздельные параметры:
Справка по фунциям
$this->table->generate()
Возвращает строку, содержащую сгенерированную таблицу. Принимает опциональный параметр, который может быть массивом или результатом выборки из базы данных.
$this->table->set_caption()
Позволяет вам добавить название таблицы.
$this->table->set_caption('Colors');
$this->table->set_heading()
Позволяет вам устанавливать шапку таблицы. Вы можете передать массив или раздельные параметры:
$this->table->set_heading('Name', 'Color', 'Size'); $this->table->set_heading(array('Name', 'Color', 'Size'));
$this->table->add_row()
Позволяет вам добавить строку в вашу таблицу. Вы можете передать массив или раздельные параметры:
$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');
// генерирует
// <td class='highlight' colspan='2'>Blue</td><td>Red</td><td>Green</td>
$this->table->make_columns()
Эта функция принимает линейный массив на вход и создает многомерный массив с глубиной, эквивалентной количеству определенных столбцов. Это позволяет отображать единственный массив с множеством элементов в таблице с фиксированным количеством столбцов. Рассмотрим этот пример:
$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);
// Генерирует таблицу такого вида:
<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>
$this->table->set_template()
Позволяет вам установить ваш шаблон. Вы можете передать шаблон полностью или частично.
$tmpl = array ( 'table_open' => '<table border="1" cellpadding="2" cellspacing="1" class="mytable">' );
$this->table->set_template($tmpl);
$this->table->set_empty()
Позволяет вам установить значение по умолчанию, используемое во всех пустых ячейках таблицы. Вы можете, к примеру, установить непрерывный пробел:
$this->table->set_empty(" ");
$this->table->clear()
Позволяет вам очистить заголовок таблицы и данные строк. Если вы хотите показывать множество таблиц с разными данными, вы должны вызвать эту функцию после генерации каждой очередной таблицы, чтобы очистить объект от использованной информации. Пример:
$this->load->library('table');
echo $this->table->generate();
$this->table->function
Позволяет вам указывать родные функции PHP или правильные функции объекта массива, которые будут применены к данным во всех ячейках.
$this->load->library('table');
$this->table->function = 'htmlspecialchars';
echo $this->table->generate();
В примере выше, все ячейки с данными будут обработаны функцией PHP htmlspecialchars(), и получится:
<td>Fred</td><td><strong>Blue</strong></td><td>Small</td>
Комментарии пользователей
Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!