Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Закрашивание элемента <TR> цветом при его выборе
 
 автор: codexomega   (01.06.2006 в 19:28)   письмо автору
 
 

Есть страница, которая отображает список элементов в таблице.
Элементы выводятся из БД.
Что у нас есть:
Когда элементы выводятся один за другим, происходит альтернация цвета каждой строки, при наводе курсора на определёную строку, её цвет меняется.
Чего не достаёт:
Если пользователь нажал поставил галочку в определённой строке, её цвет тоже меняется.

Посмотрите скриншот, чтобы было понятнее->

Вывод элементов из БД:

<?php 
    
while ($list mysql_fetch_array$sql_total_records) ) { 
            
// Alternate table rows colors 
            
$bgc = ( $bgc==='tdLight' 'tdDark' 'tdLight' ); 
?> 
<tr class="<?php print($bgc);?>" onMouseOver="this.className='highlight'" onMouseOut="this.className='<?php print($bgc);?>'"> 
    <td width="10%" align="center" ><input type="checkbox" name="deletelist[<?php echo $list['airplane_id']; ?>]" id="deletelist"     value="<?php echo $list['airplane_id']; ?>" onclick="colorMe(this)"/></td> 
            <td width="40%" align="center"> 
                <?php print($list['airplane_type_name']);?> 
                        <input type="hidden" value="<?php print($list['airplane_id']);?>"> 
            </td> 
            <td  width="40%" align="center"> 
                <?php print($list['airplane_name']);?> 
            </td> 
</tr> 
<?php // end of while ?>


Javascript:

function colorMe(el)
{
  while(el.tagName != 'TR') { el = el.parentElement; }
  el.bgColor= (el.bgColor=='#ff0000' ? '#ffffff' : '#ff0000');
}



Функция colorMe() отказывается здесь работать.
Как быть?
Спасибо.

   
 
 автор: RMW   (01.06.2006 в 20:57)   письмо автору
 
   для: codexomega   (01.06.2006 в 19:28)
 

Возможно проблема в том, что
el.bgColor != el.style.backgroundColor

   
 
 автор: codexomega   (01.06.2006 в 21:04)   письмо автору
 
   для: RMW   (01.06.2006 в 20:57)
 

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

   
 
 автор: RMW   (01.06.2006 в 21:15)   письмо автору
 
   для: codexomega   (01.06.2006 в 21:04)
 

Нередки блуждания в этих трёх соснах.
html: bgcolor
css: background-color
Js: backgroundColor
Целых три разных названия одного свойства! :)))

   
 
 автор: 12345   (01.06.2006 в 21:59)   письмо автору
 
   для: RMW   (01.06.2006 в 21:15)
 

Ещё 4-е: bgColor (JS), не равный style.backgroundColor. И если он всегда имеет hex-представление, то style.backgroundColor может быть пустым, hex, rgb или текстовым цветом.

   
 
 автор: codexomega   (01.06.2006 в 22:32)   письмо автору
 
   для: 12345   (01.06.2006 в 21:59)
 

Ураа!! Получилось!
Вот рабочий код:

function colorMe(el)
{
  var chkbox = el;
   
  while(el.tagName != 'TR') { el = el.parentElement; }
  var original_color = el.bgColor;
  if(chkbox.checked)
      el.style.backgroundColor= '#1E90FF';
  else{
      el.style.backgroundColor= original_color;
  }
}




<tr class="<?php print($bgc);?>" onMouseOut="this.className='<?php print($bgc);?>'" onMouseOver="this.className='highlight'">

   
 
 автор: codexomega   (01.06.2006 в 21:20)   письмо автору
 
   для: codexomega   (01.06.2006 в 21:04)
 


function colorMe(el)
{
  var chkbox = el;
   
  while(el.tagName != 'TR') { el = el.parentElement; }
  var original_color = el.style.backgroundColor;
  //alert(original_color);
  if(chkbox.checked)
      el.style.backgroundColor= (el.bgColor==='#1E90FF' ? original_color : '#1E90FF');
  /*else
      el.style.backgroundColor=original_color;*/
}


Вот я здесь экспериментирую с функцией, чтобы возвратить прежний цвет строке, после снятия галочи с чекбокса.
Нифига не получается, перехватить оригинальный цвет строки, при выводе элементов не удаётся, так как он теряeтся сразу после наведения мышки на строку.

Мне хочется сделать типа того, как это устроено в phpMyAdmin.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования