Довольно часто требуется вывести таблицу зеброй. В основном это какие-нибудь прайс-листы. Подсветка такого рода очень облегчает пользователю считывать с экрана своего монитора информацию с вашего сайта. Так как не нужно сильно напрягать глаза, чтобы не запутаться в сплошных строках таблицы.
Мы с Вами напишем собственную функцию, которая будет отвечать за вывод таблицы зеброй. И так приступим.
<?php
//Создаем массив с данными от 1 до 5
$data = range(1,5);
/*Функция заливки таблицы
*@param int $num
*/
function bgColorTable($num)
{
//Первый цвет заливки строки таблицы
$bg = '#c0c0c0';
if(++$num % 2 == 0)
//Второй цвет заливки строки таблицы
$bg = '#ffffd0';
//Возвращаемый цвет заливки строки таблицы
return $bg;
}
//Рисуем саму таблицу
$tbl = '<table border="0" width="50%" align="center">'."\n";
//Определяем переменную для инкремента
$i = 0;
//Перебираем массив с данными и вставляем в ячейки таблицы
foreach($data as $val)
{
$tbl .= '<tr bgcolor="'. bgColorTable($i++) .'">'."\n";
$tbl .= '<td>'. $val .'</td>'."\n";
$tbl .= '</tr>'."\n";
}
$tbl .= '</table>'."\n";
//Выводим сгенерированную таблицу
echo $tbl;
?>
1 |
2 |
3 |
4 |
5 |
Мы создали функцию, которая отвечает за генерацию цвета строки ячеек в таблицы. Теперь, когда нам нужно в таблицу вывести зеброй мы всего лишь на всего вызываем нашу функцию. Если нужно изменить цвета, то мы лишь в одном месте меняем их в теле функции, а не бегаем судорожно по страницам с кодом и исправляем везде. Согласитесь, удобней поменять значения параметра в одном месте, чем искать их в разных местах.
Но данный пример не очень гибкий. Дело в том, что данная реализация позволяет нам сохранить стиль наших таблиц на всем нашем , но бывают случаи, когда нужно таблицу разукрасить другими цветами. Чтобы не писать новую функцию специально для одной таблицы или нескольких мы немного модифицируем нашу функцию.
<?php
//Создаем массив с данными от 1 до 5
$data = range(1,5);
/*Функция заливки таблицы
*@param int $num
*@param string $bgOne
*@param string $bgTwo
*/
function bgColorTable($num, $bgOne = '#c0c0c0', $bgTwo = '#ffffd0')
{
//Первый цвет заливки строки таблицы
$bg = $bgOne;
if(++$num % 2 == 0)
//Второй цвет заливки строки таблицы
$bg = $bgTwo;
//Возвращаемый цвет заливки строки таблицы
return $bg;
}
//Рисуем саму таблицу
$tbl = '<table border="0" width="30%" align="center">'."\n";
//Определяем переменную для инкремента
$i = 0;
//Перебираем массив с данными и вставляем в ячейки таблицы
foreach($data as $val)
{
//Получаем цвет заливки по умолчанию
$color = bgColorTable($i++);
$tbl .= '<tr bgcolor="'. $color .'">'."\n";
$tbl .= '<td width="20px" valign="middle" align="center"><b>'. $val .'</b></td>'."\n";
$tbl .= '<td width="200px" valign="middle" style="padding-left:5px">'. $color .'</td>'."\n";
$tbl .= '</tr>'."\n";
}
//Перебираем массив с данными и вставляем в ячейки таблицы
foreach($data as $val)
{
//Получаем цвет заливки с новыми цветами
$color = bgColorTable($i++, '#ff0000','#ffcc00');
$tbl .= '<tr bgcolor="'. $color .'">'."\n";
$tbl .= '<td width="20px" valign="middle" align="center"><b>'. $val .'</b></td>'."\n";
$tbl .= '<td width="200px" valign="middle" style="padding-left:5px">'. $color .'</td>'."\n";
$tbl .= '</tr>'."\n";
}
//Закрываем таблицу
$tbl .= '</table>'."\n";
//Выводим сгенерированную таблицу
echo $tbl;
?>
1 | #c0c0c0 |
2 | #ffffd0 |
3 | #c0c0c0 |
4 | #ffffd0 |
5 | #c0c0c0 |
1 | #ffcc00 |
2 | #ff0000 |
3 | #ffcc00 |
4 | #ff0000 |
5 | #ffcc00 |
Как видно из скрипта, мы добавили нашей функции еще два параметра по умолчанию. Тем самым добились гибкости нашей функции. Теперь можно менять цвета строк таблицы, на свое усмотрение, передав функции нужные аргументы.
23/09/2015 19:09:52
21/09/2015 12:36:56
Предлагаю Вам закрыть данный спор, так как он не относится к тебе данного урока. Я показал один из способов, Вы вправе добавить свой вариант, а спорить чье кун - фу лучше мне кажется бестолковое занятиет.
21/09/2015 14:16:00
21/09/2015 12:30:34
18/09/2015 19:12:43
19/09/2015 10:04:24