Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Разноцветная таблица


Автор: Teresh 14.2.2011, 21:50
Нужно сгенерить HTML-таблицу с 1000-ю строками, в которой цвет фона строк меняется от 000000 до FFFFFF одновременным увеличением всех компонент цвета на один на каждой следующей строке.

Автор: ayax2005 14.2.2011, 23:47
Ну а вопрос-то в чём?

Автор: Teresh 15.2.2011, 00:21
как это сделать на php?

Автор: bars80080 15.2.2011, 01:02
цикл на тысячу итераций, вычисляем разницу между двумя крайними цветами, делим на 1000 - получаем шаг. далее остаётся всего лишь на каждой итерации вставлять нужный цвет в <tr><td style="background: #'.$color

Автор: BuShaRt 15.2.2011, 18:19
По своему опыту скажу, что такие фокусы лучше оставлять на совесть клиентских скриптов т.к. по идее PHP не должен на прямую управлять HTML выводом. Он должен подсчитать и сформировать данные, остальное - это уже CSS и JS. 

Автор: Dima 2015 16.2.2011, 00:54
BuShaRt, возражу. Перекрашивать на клиенте 1к строк будет куда сложнее с точки зрения нагрузки на браузер чем сразу вывести нужное.

Автор: BuShaRt 21.2.2011, 11:54
Dima 2015, 
Я так понимаю о http://ru.wikipedia.org/wiki/Model-View-Controller вы не слышали.
Если мы говорим о выполнение задачки из сборника "PHP для чайников" (иначе мне не понятно, в каком проекте есть необходимость выводить 1000 строк на одной странице), то конечно о MVC нам знать не надо и совет bars80080 очень актуален, ну а я же просто дополнил ответ, менее полезной в данной ситуации, но более практичной в перспективе информацией.

Автор: Dima 2015 21.2.2011, 14:11
BuShaRt, ну зачем сразу делать какие-то необоснованные предположения... слышал, и не раз, и даже не два. Но неужели Вы хотите сказать, что парадигма MVC велит выносить всю логику представления и даже верстку на клиент и класть это на плечи бедного js-движка браузера, а от ПХП требуется только json в нужное место вывести и все? Паттерн то не в этом состоит, паттерн состоит в том, чтобы разнести бизнес-логику и логику отображения по разным участкам кода, по разным файлам, классам если хотите. Но это не значит, что Пыху верстку формировать запрещается. Формирует, очень даже... и большинство сайтов работает именно так.

Я так понимаю, Вы клоните в сторону клиентских джаваскриптовых шаблонизаторов. Да, тема есть такая, тема интересная. С теоритической точки зрения даже оправданная, трафика меньше, скорость больше и т.д. Но мне кажется это скорее экспериментальная технология и работает на очень небольшом числе сайтов, чаще все таки РНР формирует целиком хтмл-код, даже аяксовые запросы часто отдают целые готовые хтмл-блоки, которые потом просто вставляются в контейнер через innerHTML.

Но это все лирика, и речь то вообще не об этом... при чем тут вообще было MVC? Я говорил про скорость, когда возникают такие нестандартные штуки всегда надо думать как лучше сделать. Так вот я по опыту знаю, когда надо на клиенте ворочить большим числом элементов - браузеру может стать плохо, особенно когда менять что-то надо и браузеру надо перерендерить страницу, а в данном случае это именно так.

Автор: BuShaRt 21.2.2011, 17:07
Dima 2015, 
Значит вы считаете нормальным написать такой код?

Код

print '<div style="text-align: center;">Шаблон <span style="color: #3366ff;">MVC</span> позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента</div>';

Автор: ayax2005 21.2.2011, 17:12
научи дурака Богу молиться.....


BuShaRt, ваше предложение использовать паттерн MVC для решения этой конкретной задачи мне кажется в принципе довольно странным. Делаете из мухи слона.

Автор: ksnk 21.2.2011, 20:13
Teresh, есть несколько принципиальных моментов. Обычно, "1000 строк в таблице" не нужно ни пользователю - он не сможет объять такое количество данных, ни программисту - при этом генерится довольно большая по объему "простыня", которая долго долетает до клиента. Длинная простыня имеет право на существование только при выводе текста на печать или еще в каких экзотических случаях, так что порезать весь вывод на страницы  и снабдить сортировкой - будет достойным и разумным украшением  странички smile 

Цитата(Teresh @  14.2.2011,  21:50 Найти цитируемый пост)
одновременным увеличением всех компонент цвета на один на каждой следующей строке. 

Это как это? в цвете RGB - 3 составляющие цвета и 256 значений "яркости". Откуда берутся 1000 строк?

Это что - палитра для выбора цвета? Если действительно - разумнее поискать готовые и удобные палитры в интернете.


Автор: Dima 2015 21.2.2011, 20:48
BuShaRt, ну к слову сказать MVC такой код не противоречит никак, особенно если перед ним не идет пачка запросов к БД и после него тоже...

Неграмотное разделение на Html и css - да. Я к своему стыду часто ленюсь и так пишу, но все-таки это всегда происходит в одном месте - в шаблонах (уже очень давно использую Смарти и конечно никаких print там нет).

И вообще, повторюсь - причем тут это? Давайте не будем оффтопить, речь о том как таблицу покрасить. Кстати меня тоже заинтересовал вопрос - зачем?

И я настаиваю - красить надо Пыхом, джсом это будет убийственно, отображаться будет не сразу и вообще FUU. Ну а стилем тут очевидно никак, т.к. цветов надо шибко много.

Автор: BuShaRt 3.3.2011, 15:32
Цитата(Dima 2015 @  21.2.2011,  20:48 Найти цитируемый пост)
BuShaRt, ну к слову сказать MVC такой код не противоречит никак, особенно если перед ним не идет пачка запросов к БД и после него тоже...

Если вы так считаете, то не вижу смысла вести дискуссию..

По теме:
Нарисовать таблицу в 1000 строк, в которой каждая нижестоящая строка будет темнее вышестоящей на 1 шаг невозможно т.к. RGB имеет всего 257 (от 0 до 256) шагов. (Автор ясно указал, что все три цвета делают шаг одновременно)

Код

<?php
print '<table border="0">';
for ($i=0; $i<=256; $i++) {
    print '<tr style="background: rgb('.$i.', '.$i.', '.$i.')"><td>';
    print '#'.$i.'-'.$i.'-'.$i;
    print '</td></tr>';
}
print '</table>';
?>

Автор: ksnk 4.3.2011, 15:55
Цитата(BuShaRt @  3.3.2011,  15:32 Найти цитируемый пост)
от 0 до 256

от 0 до 255  smile 

Автор: BuShaRt 4.3.2011, 16:03
Цитата(ksnk @  4.3.2011,  15:55 Найти цитируемый пост)
от 0 до 255  smile 


В точку... А я все думаю, что за фигня получаеться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)