[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: динамическое изменение ячейки в таблице
zvezda_t
Здравствуйте!

Подскажите пожалуйста, как справиться с задачей.
Есть таблица:

print"
<table>"
;

for($j=0;$j<=$k;$j++)
{
print"<tr id='tr_id".$p."'>
<td>"
.$p."</td>
<td>"
.$num_doc."</td>
<td id='td_num"
.$num_doc."'
onMouseOver='this.style.background=
\"#FFCC33\"'
onMouseOut='this.style.background=
\"".@$col."\"'
onclick='changeColor(this,"
.$p.");'
style='cursor: hand'
>"
.$value."</td>
</tr>"
;
}
print "</table>
"
;



//периодически запускается функция, которая проверяет нужно ли изменить внешний вид ячеек
...

//использую ajax для получения номеров документов, для которых нужно изменить внешний вид ячейки

function Refresh() 
{
var a,b,simpleArray;
var k;

a = req_onlank.readyState;
if( a == 4 )
{
b = req_onlank.responseText;

//существуют документы
if(b!='')
{
simpleArray=b.split(" ");
k=simpleArray.length;
alert('k='+k);

//меняем цвет ячейки
d.getElementById('td_num'+simpleArray[0]).style.background="0cff00";


//d.getElementById('td_num'+simpleArray[0]).click(alert('rabotaet'));

}


}
}


Вот у меня получилось пока изменить только цвет ячейки, а мне еще нужно
убрать обработчики
onMouseOver,onMouseOut,onclick.

И еще нужно изменить цвет всей строки, при этом как то учесть что, если строка которую нужно изменить четная то цвет синий, а если нечетная то белые(чередование цветов, с порядковым номером $p).



Спустя 3 часа, 9 минут, 18 секунд (20.01.2011 - 16:36) ИНСИ написал(а):
Цитата
И еще нужно изменить цвет всей строки, при этом как то учесть что, если строка которую нужно изменить четная то цвет синий, а если нечетная то белые(чередование цветов, с порядковым номером $p).

это лучше через цикл сделать, примерно так:
        if($j % 2 == 0) {
$class = 'white';
else
$class = 'red';


Спустя 36 минут, 36 секунд (20.01.2011 - 17:12) Michael написал(а):
var objtd = d.getElementById('td_num'+simpleArray[0]);
if (objtd) {
objtd.style.background="0cff00";
// остальные действия
}

Цитата
убрать обработчики
onMouseOver,onMouseOut,onclick.

objtd.onclick = null;
// ...

Цитата
И еще нужно изменить цвет всей строки, при этом как то учесть что, если строка которую нужно изменить четная то цвет синий, а если нечетная то белые(чередование цветов, с порядковым номером $p).

var objtr = objtd.parentNode;
if (objtr) {
objtr.style.background="red";
if (objtr.rowIndex %2 == 0) {
// нечетная
// ...

}
}


Спустя 15 часов, 13 минут, 28 секунд (21.01.2011 - 08:26) zvezda_t написал(а):
Michael, ВОТ ЭТО ДА!!! круто!!!!!
спасибо большое!

Можно еще вопрос?
У меня почему то события, так не очистились:
Цитата
objtd.onMouseOver= null;
objtd.onMouseOut = null;


не правильно написала?

И еще скажите пожалуйста, какие изменения нужно внести, чтоб и в других браузерах работало, в Мазиле например (я работаю в IE) rolleyes.gif


Спустя 25 минут, 42 секунды (21.01.2011 - 08:52) Michael написал(а):
objtd.onmouseover= null;


Спустя 14 минут, 48 секунд (21.01.2011 - 09:06) zvezda_t написал(а):
Michael
ю ху ху
user posted image

Спустя 1 час, 28 минут, 34 секунды (21.01.2011 - 10:35) zvezda_t написал(а):
Скажите пожалуйста, получить значение input можно только через имя формы?
а если знаешь id ячейки или строки в которой input, как получить значение?

print"
<form name='form1'>
<table>"
;

for($j=0;$j<=$k;$j++)
{
print"<tr id='tr_id".$p."'>
<td>"
.$p."</td>
<td>"
.$num_doc."</td>
<td id='td_num"
.$num_doc."'>".$value."
<input type='hidden' id='stat' name='stat' value='"
.@$status."'/>
</td>
</tr>"
;
}
print "</table>
</form>
"
;



var objtd = d.getElementById('td_num'+b);
var objtr = objtd.parentNode;
var i=objtr.rowIndex;

var k=document.getElementById('form1').stat[i].value;//через форму

Спустя 27 минут, 50 секунд (21.01.2011 - 11:03) Michael написал(а):
var k = objtd.getElementsByTagName('INPUT')[0].value;

Спустя 25 секунд (21.01.2011 - 11:03) zvezda_t написал(а):
ни как не могу изменить:

var objtd = d.getElementById('td_aid'+B);

//работает:
objtd.style.background="#FF0016";

//не работает:
objtd.onmouseout = 'document.getElementById(\"td_aid'+ b +'\").style.background=\"#FF0016\"';
//не работает:
objtd.onmouseout = 'this.style.background=\"#FF0016\"';

подскажите пожалуйста где ошибка?

Спустя 1 минута, 40 секунд (21.01.2011 - 11:05) Michael написал(а):
Цитата (zvezda_t @ 21.01.2011 - 10:03)
//не работает:
objtd.onmouseout  = 'document.getElementById(\"td_aid'+ b +'\").style.background=\"#FF0016\"';

objtd.onmouseout  = function(){
document.getElementById("td_aid"+ b).style.background="#FF0016"';
}

Спустя 1 час, 1 минута, 36 секунд (21.01.2011 - 12:07) zvezda_t написал(а):
Michael
работает! smile.gif
столько нового узнала, большое спасибо что уделил внимание!!!! smile.gif smile.gif smile.gif


_____________

Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.