Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ WEB Разработка ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

FreeBSD and Nix

Общая

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Codeigniter: html table class


Класс таблиц предоставляет функции, которые позволяют вам автоматически генерировать HTML-таблицы из массивов или результатов выборок базы данных.
Инициализация класса
Как и большинство других классов в CodeIgniter, класс таблиц инициализируется в вашем контроллере посредством функции $this->load->library:

$this->load->library('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); 

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

public function index()
        {

            $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(); 

        }

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

<?php
class Blog extends CI_Controller {

        public function index()
        {

            $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(); 

        }
        

        
}

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

<?php
class Blog extends CI_Controller {

        public function index()
        {
            $this->load->library('table');

            $tmpl = array (
                            'table_open'               => '<table border="0" cellpadding="14" cellspacing="0">',

                           'heading_row_start'   => '<tr>',
                            'heading_row_end'     => '</tr>',
                            'heading_cell_start'   => '<th>',
                            'heading_cell_end'     => '</th>',

                            '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($tmpl); 
            
            $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(); 

        }
        

        
}

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

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

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

Справка по фунциям
$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("&nbsp;"); 
$this->table->clear()
Позволяет вам очистить заголовок таблицы и данные строк. Если вы хотите показывать множество таблиц с разными данными, вы должны вызвать эту функцию после генерации каждой очередной таблицы, чтобы очистить объект от использованной информации. Пример:
$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(); 
$this->table->function
Позволяет вам указывать родные функции 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>


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект