Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: через одну строку в таблице выделять цветом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): [1] 2 3 »   

> Без описания
MBmusic
Отправлено: 28 Августа, 2013 - 14:24:28
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




в общем есть таблица, в ней выводятся строки, НО! строк может быть разное количество......мне нужно через одну строку выделять другим цветом......

ну например есть строки:
1
2
3
4

нужно например строки 2, 4 выделить красным цветом......строки я вывожу циклом, а в цикле делаю проверку if($i % 2) то тогда строку выделяем цветом, иначе не выделяем......но оно аботает не правильно если строк у нас например не 4 а 5, или 7......то тогда выделяем неправильно или вообще не выделяет......в общем как замутить?
 
 Top
Ch_chov
Отправлено: 28 Августа, 2013 - 14:33:35
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Это называется зебра. Есть куча вариантов реализации (php, js, css3). Гуглите по форуму, обсуждалось уже не раз.
 
 Top
Zuldek
Отправлено: 28 Августа, 2013 - 14:43:32
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




CODE (html):
скопировать код в буфер обмена
  1. table tr:nth-child(2n) {background-color:#000 !important}

(Отредактировано автором: 28 Августа, 2013 - 14:55:18)

 
 Top
MBmusic
Отправлено: 28 Августа, 2013 - 14:46:30
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




та я уже смотрел примерчики, тут проблема в другом......у меня цикл в цикле......ну то есть

PHP:
скопировать код в буфер обмена
  1.  
  2. for($i = 0, $num = 1; $i < 24; $i++, $num++) {
  3.         for($j = 0; $j <= 60; $j += $this->minInterval) {      
  4.                 // тут идут строки таблицы
  5.         }
  6. }
  7.  


и проблема состоит в том что у меня выделаются строки три через три, четыре через четыре и тд.......то есть во втором внутреннем цикле у меня не через одну строку зарисовывает......короче не пойму как замутить....
 
 Top
teddy
Отправлено: 28 Августа, 2013 - 14:50:11
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




PHP:
скопировать код в буфер обмена
  1. $color = "red";
  2.  
  3. for($i = 1; $i < 10; $i++){    
  4.     $color == "red" ? $color = "blue" : $color = "red";
  5.     echo "<font color='$color'>$i</font>";
  6. }
  7.  

Простой пример

(Отредактировано автором: 28 Августа, 2013 - 14:50:43)

 
 Top
Zuldek
Отправлено: 28 Августа, 2013 - 14:52:25
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




CODE (html):
скопировать код в буфер обмена
  1. <style>
  2. .tbl .trintbl:nth-child(2n) {background-color:#000 !important}
  3. </style>
  4.  
  5. <table class="tbl">
  6.  <tr class="trintbl"><td>Какая разница что там у вас в циклах. Вы строите html-код таблицы и прицепляете стили к этой html-стрктуре</td></tr>
  7.  <tr class="trintbl"><td>Какая разница что там у вас в циклах. Вы строите html-код таблицы и прицепляете стили к этой html-стрктуре</td></tr>
  8.  <tr class="trintbl"><td>Какая разница что там у вас в циклах. Вы строите html-код таблицы и прицепляете стили к этой html-стрктуре</td></tr>
  9. </table>

(Отредактировано автором: 28 Августа, 2013 - 14:54:54)

 
 Top
teddy
Отправлено: 28 Августа, 2013 - 14:52:37
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


Помог: 91 раз(а)




MBmusic
Если речь идет о совместной реализацией с вашей другой темой используйте пример Мелкого. там без вложенных циклов

(Отредактировано автором: 28 Августа, 2013 - 14:53:43)

 
 Top
IllusionMH
Отправлено: 28 Августа, 2013 - 14:53:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




MBmusic, добавьте отдельную переменную счетчика номера строки. И проверяйте остаток от деления. Но лучше стилями
CODE (css):
скопировать код в буфер обмена
  1. tr:nth-child(2n) {
  2.   background-color: gray;
  3. }

(Добавление)
Zuldek, n не хватает в селекторе
 
 Top
MBmusic
Отправлено: 28 Августа, 2013 - 14:55:27
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




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

PHP:
скопировать код в буфер обмена
  1.  
  2.         <table cellspacing="0" cellpading="0">
  3.                 <tr>
  4.                         <th></th>
  5.                         <th>Mo, 2/9</th>
  6.                         <th>Tu, 3/9</th>
  7.                         <th>We, 4/9</th>
  8.                         <th>Th, 5/9</th>
  9.                         <th>Fr, 6/9</th>
  10.                         <th>Sa, 7/9</th>
  11.                         <th>Su, 8/9</th>
  12.                 </tr>
  13.                
  14.                 <?PHP for($i = 0, $num = 1; $i < 24; $i++, $num++) {
  15.                                 for($j = 0; $j <= 60; $j += 20) {      
  16.  
  17.                                   if($j == 60)
  18.                                   {
  19.                                      continue;
  20.                                   }
  21.                                  
  22.                                   if(strlen($i) == 1)
  23.                                   {
  24.                                      $i = '0' . $i;            
  25.                                   }    
  26.                                  
  27.                                   if(strlen($j) == 1)
  28.                   {
  29.                                         $j = '0' . $j;
  30.                                   }
  31.  
  32.  
  33.                                   ?>
  34.                 <tr class="<?PHP echo ($i % 2 == 0) ? 'schedul-tr-proc' : ''; ?>">
  35.                         <td><?PHP echo $i . ':' . $j; ?></td>
  36.                         <td></td>
  37.                         <td><div></div></td>
  38.                         <td></td>
  39.                         <td></td>
  40.                         <td></td>
  41.                         <td></td>
  42.                         <td></td>
  43.                 </tr>
  44.                 <?PHP } } ?>
  45.                
  46.         </table>
  47.  


вот стили:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. .schedul-tr-proc {
  3.         background:#DEE4EC;
  4. }
  5.  
 
 Top
Zuldek
Отправлено: 28 Августа, 2013 - 15:01:09
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




единственное изменение, которое надо внести:
PHP:
скопировать код в буфер обмена
  1. <tr class="<?
  2. // оставляем вашу мотню, наслаждайтесь
  3. PHP echo ($i % 2 == 0) ? 'schedul-tr-proc ' : ''; ?>trintbl">

Добавить класс .tbl для таблицы, добавить стиль:
Цитата:
CODE (html):
скопировать код в буфер обмена
  1. .tbl .trintbl:nth-child(2n) {background-color:#000 !important}

(Отредактировано автором: 28 Августа, 2013 - 15:02:45)

 
 Top
MBmusic
Отправлено: 28 Августа, 2013 - 15:04:14
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




не работает......зарисовывает строки три через три
 
 Top
Zuldek
Отправлено: 28 Августа, 2013 - 15:05:30
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




MBmusic пишет:
не работает......зарисовывает строки три через три


Результирующий html-код и стили в студию.
 
 Top
avtor.fox
Отправлено: 28 Августа, 2013 - 15:07:47
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


Помог: 50 раз(а)





teddy, так, к слову.

В миллионном исчислении строк можно выиграть пару Кб))
 
 Top
MBmusic
Отправлено: 28 Августа, 2013 - 15:08:20
Post Id


Посетитель


Покинул форум
Сообщений всего: 481
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




вот весь мой код:

PHP:
скопировать код в буфер обмена
  1.  
  2. <div class="scheduler">
  3.  
  4.         <table cellspacing="0" cellpading="0">
  5.                 <tr>
  6.                         <th></th>
  7.                         <th>Mo, 2/9</th>
  8.                         <th>Tu, 3/9</th>
  9.                         <th>We, 4/9</th>
  10.                         <th>Th, 5/9</th>
  11.                         <th>Fr, 6/9</th>
  12.                         <th>Sa, 7/9</th>
  13.                         <th>Su, 8/9</th>
  14.                 </tr>
  15.                
  16.                 <?PHP for($i = 0, $num = 1; $i < 24; $i++, $num++) {
  17.                                 for($j = 0; $j <= 60; $j += 20) {      
  18.  
  19.                                   if($j == 60)
  20.                                   {
  21.                                      continue;
  22.                                   }
  23.                                  
  24.                                   if(strlen($i) == 1)
  25.                                   {
  26.                                      $i = '0' . $i;            
  27.                                   }    
  28.                                  
  29.                                   if(strlen($j) == 1)
  30.                   {
  31.                                         $j = '0' . $j;
  32.                                   }
  33.  
  34.  
  35.                                   ?>
  36.                 <tr class="<?PHP echo ($i % 2 == 0) ? 'schedul-tr-proc ' : ''; ?>trintbl">
  37.                         <td><?PHP echo $i . ':' . $j; ?></td>
  38.                         <td></td>
  39.                         <td><div></div></td>
  40.                         <td></td>
  41.                         <td></td>
  42.                         <td></td>
  43.                         <td></td>
  44.                         <td></td>
  45.                 </tr>
  46.                 <?PHP } } ?>
  47.                
  48.         </table>       
  49. </div>
  50.  


стили:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. .schedul-tr-proc {
  3.         background:#DEE4EC;
  4. }
  5.  
  6. .schedul-tr-proc table .trintbl:nth-child(2n) {background-color:#000 !important}
  7.  
  8.  
 
 Top
Zuldek
Отправлено: 28 Августа, 2013 - 15:10:20
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Покажите код HTML-страницы (страницы сайта) которую показал браузер после внесения изменений.
(Вид -> Исходный код страницы / Правый клик -> Исходный код страницы).

Отставить такие сложности.
Вот вам код:

Спойлер (Отобразить)

Удалить ваш и вставить вместо него.
Перед просмотром результата очистить кэш браузера.
И убрать отсебятину, если не понимаете почему данный селектор работать не будет:
Цитата:
.schedul-tr-proc table .trintbl:nth-child(2n) {background-color:#000 !important}

(Отредактировано автором: 28 Августа, 2013 - 15:22:28)

 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB