За последние 24 часа нас посетили 74140 программистов и 10170 роботов. Сейчас ищут 2477 программистов ...

Закрашивание ячеек в таблице в зависимости от данных в ячейк

Тема в разделе "Прочие вопросы по PHP", создана пользователем Gradyskav, 20 ноя 2011.

  1. Gradyskav

    Gradyskav Активный пользователь

    С нами с:
    20 ноя 2011
    Сообщения:
    24
    Симпатии:
    0
    Понял, а вот например если в одной таблице закрашиваем в желтый цвет при интервале от 0 до 10 в зеленый от 11 до 20.
    А в другой таблице мы в желтый закрашиваем от 0 до 100.
    То как здесь быть?
    И вот такой вопрос, с дробями так работать можно?
     
  2. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    тогда ту функцию которую я использовал не нужно, а нужно сделать 2 подобных, для разных интервалов.
    да спокойно.
     
  3. Gradyskav

    Gradyskav Активный пользователь

    С нами с:
    20 ноя 2011
    Сообщения:
    24
    Симпатии:
    0
    разных интервалов и разных таблиц) по id))Если я правильно понял)
    Огромное спасибо еще раз)
    И последнее, а дроби в интервале как записывать. Сейчас пишем (7,9) через запятую два целых. А дроби как будут выглядеть, через точку? (7.1,9.1)???
     
  4. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    а так дроби нельзя ( я не дроби думал в ячейках
    придётся в условии:
    if(num < 2.1 && num > 1.5)
     
  5. Gradyskav

    Gradyskav Активный пользователь

    С нами с:
    20 ноя 2011
    Сообщения:
    24
    Симпатии:
    0
    Понял, в ячейках дроби спокойно пишу, а в условии, так как Вы показали.

    if($R(num < 2.1 && num > 1.5).include(num))
    $class = arr_class[0];

    Если я правильно понял)
    Огромная Вам благодарность, Михаил.)))))
    Вы очень помогли)
     
  6. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    не без $R
    просто
    if(num < 2.1 && num > 1.5)
     
  7. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    не за что.
     
  8. Gradyskav

    Gradyskav Активный пользователь

    С нами с:
    20 ноя 2011
    Сообщения:
    24
    Симпатии:
    0
    и уточнить еще хотел, если таблица заполняется из БД при помощи массива php этот скрипт с ней будет работать? или тут надо по другому?
     
  9. Gradyskav

    Gradyskav Активный пользователь

    С нами с:
    20 ноя 2011
    Сообщения:
    24
    Симпатии:
    0
    Т.Е. вот так

    HTML:
    1. function table_colorize(elements, array_class)
    2. {
    3.   elements.each(function(i, j){
    4.         var  num = i.innerText || i.textContent;
    5.         var  $class;
    6.         if(num < 2.1 && num > 1.5)
    7.              $class = array_class[0];
    8.         if(num < 2.1 && num > 1.5)
    9.              $class = array_class[1];
    10.      if(num < 2.1 && num > 1.5)
    11.              $class = array_class[2];
    12.    
    13.          i.addClassName($class);
    14.    
    15.   });
    16.  
    17. };
    или
    HTML:
    1. if((num < 2.1 && num > 1.5).include(num))
    2.              $class = array_class[2];
    Хотя мне кажется, второй вариант не очень.
     
  10. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    да так, 2й вар-т не будет работать.

    будет работать.
     
  11. Gradyskav

    Gradyskav Активный пользователь

    С нами с:
    20 ноя 2011
    Сообщения:
    24
    Симпатии:
    0
    записал так, почему-то числа попадающие в интервал между дробями не закрашиваются. Остальное все работает)
     
  12. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
  13. Gradyskav

    Gradyskav Активный пользователь

    С нами с:
    20 ноя 2011
    Сообщения:
    24
    Симпатии:
    0
    Понял, надо было все числа дробными писать в условиях)) Еще раз Огромное Спасибо)
     
  14. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
    не обязательно все дробные.
    не за что.
     
  15. Gradyskav

    Gradyskav Активный пользователь

    С нами с:
    20 ноя 2011
    Сообщения:
    24
    Симпатии:
    0
    Хм, вроде все скопировал верно, а работать не хочет. На фф отображается а дома на своей страничке нет.

    HTML:
    1.  <head>
    2.  <link rel="stylesheet" href="style.css" type="text/css" />
    3.  <script type="text/javascript" src="prototype.js"></script>
    4.  <script type="text/javascript">
    5.      $(document).observe('dom:loaded', function(){
    6. var arr_class = ['range1','range2','range3'];
    7. var abc_class = ['a', 'b', 'c'];
    8.  
    9. function table_colorize(elements, array_class)
    10. {
    11.   elements.each(function(i, j){
    12.        
    13.         var  num = i.innerText || i.textContent;
    14.      
    15.         var  $class;
    16.         if(num > 1.5 && num < 5.5)
    17.             $class = array_class[0];
    18.         if(num > 5.4 && num <= 8.3)
    19.             $class = array_class[1];
    20.         if(num >= 9.0 || num <= 1)
    21.             $class = array_class[2];
    22.          
    23.         i.addClassName($class);
    24.    
    25.  });
    26.  
    27. };
    28. var first = $$('table#first td');
    29. var second = $$('table#second td');
    30.  
    31. table_colorize(first, arr_class);
    32. table_colorize(second, abc_class);
    33.    
    34.    
    35.  
    36.  
    37. </script>
    38.  </head>
    39.  <body>
    40. <table id="first">
    41.     <tr>
    42.         <td>0.7</td>
    43.         <td>2.1</td>
    44.         <td>3.7</td>
    45.     </tr>
    46.     <tr>
    47.         <td>4.6</td>
    48.         <td>5.5</td>
    49.         <td>6.1</td>
    50.     </tr>
    51.     <tr>
    52.         <td>7.4</td>
    53.         <td>8.3</td>
    54.         <td>9.4</td>
    55.     </tr>
    56.  
    57.  
    58. <table id="second">
    59.     <tr>
    60.         <td>1</td>
    61.         <td>2</td>
    62.         <td>3</td>
    63.     </tr>
    64.     <tr>
    65.         <td>4</td>
    66.         <td>5</td>
    67.         <td>6</td>
    68.     </tr>
    69.     <tr>
    70.         <td>7</td>
    71.         <td>8</td>
    72.         <td>9</td>
    73.     </tr>
    74.  </body>
    75.  </html>
    HTML:
    1. /* CSS Document */
    2.  
    3. .range1{background-color:#FF00FF;}
    4. .range2{background-color:#FFBB00;}
    5. .range3{background-color:#FFFFAA;}
    6. .a{background-color:#FFF000;}
    7. .b{background-color:#FF0000;}
    8. .c{background-color:#0000FF;}
    9.  
    10.  
    11. table td {width:25px; height:25px; margin:3px;}
     
  16. Gradyskav

    Gradyskav Активный пользователь

    С нами с:
    20 ноя 2011
    Сообщения:
    24
    Симпатии:
    0
    Все) Нашел ошибку. Не хватало скобок и точки с запятой. ))
    Огромное Вам Спасибо)))
     
  17. Михаил

    Михаил Активный пользователь

    С нами с:
    12 июл 2009
    Сообщения:
    545
    Симпатии:
    0
    Адрес:
    Bielarus
  18. Gradyskav

    Gradyskav Активный пользователь

    С нами с:
    20 ноя 2011
    Сообщения:
    24
    Симпатии:
    0
    А вот такой вопрос. делаю два подобных скрипта, чтобы у разных таблиц были разные интервалы. Не хочет работать. Может что-то не так делаю??
    Хм, чуток поправил. теперь первая таблица закрашивается, а вторая нет.
    Вот как получается

    HTML:
    1.  <head>
    2.  <link rel="stylesheet" href="style.css" type="text/css" />
    3.  <script type="text/javascript" src="prototype.js"></script>
    4.  <script type="text/javascript">
    5.      $(document).observe('dom:loaded', function(){
    6.  
    7. var arr_class = ['range1','range2','range3'];
    8.  
    9. function table_colorize(elements, array_class)
    10. {
    11.   elements.each(function(i, j){
    12.        
    13.         var  num = i.innerText || i.textContent;
    14.      
    15.         var  $class;
    16.         if(num > 1.5 && num < 5.5)
    17.             $class = array_class[0];
    18.         if(num > 5.4 && num <= 8.3)
    19.             $class = array_class[1];
    20.         if(num >= 9.0 || num <= 1)
    21.             $class = array_class[2];
    22.          
    23.         i.addClassName($class);
    24.    
    25.  });
    26.  
    27. };
    28. var first = $$('table#first td');
    29.  
    30.  
    31. table_colorize(first, arr_class);
    32.  
    33.    
    34. });
    35.  
    36.  
    37.  
    38. </script>
    39.  
    40.  <link rel="stylesheet" href="style.css" type="text/css" />
    41.  <script type="text/javascript" src="prototype.js"></script>
    42.  <script type="text/javascript">
    43.      $(document).observe('dom:loaded', function(){
    44.  
    45. var abc_class = ['a', 'b', 'c'];
    46.  
    47. function table_colorize(elements, array_class)
    48. {
    49.   elements.each(function(i, j){
    50.        
    51.         var  num = i.innerText || i.textContent;
    52.      
    53.         var  $class;
    54.        if($R(10,30).include(num))
    55.          $class = arr_class[0];
    56.     if($R(40,60).include(num))
    57.          $class = arr_class[1];
    58.     if($R(70,90).include(num))
    59.          $class = arr_class[2];
    60.          
    61.          i.addClassName($class);
    62.    
    63.   });
    64.  
    65. };
    66.  
    67. var second = $$('table#second td');
    68.  
    69. table_colorize(second, abc_class);
    70.    
    71. });
    72.  
    73.  
    74.  
    75.  </script>
     
  19. Gradyskav

    Gradyskav Активный пользователь

    С нами с:
    20 ноя 2011
    Сообщения:
    24
    Симпатии:
    0
    Покопался, вроде заработало)))
    Еще раз, Огромное Спасибо))