PDA

Просмотр полной версии : Выбор строки в таблице ...


KIT
15.05.2002, 10:39
Вообщем у меня возник такая проблема. Есть таблица(несколько столбцов, несколько строк). Нужно сделать так чтобы при выборе какой-то строки (мышкой или курсором) запоминались данные этой строки (для передачи к следующей странице)?
Заодно ещё один вопрос.
Как сделать подсветку всей строки при указании её (мышкой или курсором)?

Stasik
15.05.2002, 16:17
ну с запоминанием можно менять value скрытых инпутов <input type=hidden name=value1 value=""> через JS document.all.value1.value="blabla";

подсветка будет геморне там просто: у ячеек или просто у всей строки <tr> надо менять bgcolor

document.all.str.bgcolor="#FF0000";


вроде так, гарантии не даю :xex:

KIT
15.05.2002, 16:48
как передать-то параметр я знаю, а как узнать на какой строке находиться курсор мыши и какузнать содержимое этой строки.
Подсветку всей строки к примеру.
если я буду менять bgcolor у tr тогда он смениться у всех tr таблы, а мне нужно токо у того над которым курсор.

Stasik
15.05.2002, 17:47
так...


<tr onmouseover="highlight(this, '#FF0000')" onmouseout="highlight(this, '#FFFFFF')">


<script>
function highlight(theRow, highlightColor)
{
if (typeof(theRow.style) == 'undefined' || typeof(theRow.cells) == 'undefined') {
return false;
}

var row_cells_cnt = theRow.cells.length;
for (var c = 0; c < row_cells_cnt; c++) {
theRow.cells[c].bgColor = highlightColor;
}

return true;
}
</script>



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

KIT
16.05.2002, 08:03
:idontnow: ... чё-то не робит ...

neomaster
16.05.2002, 11:50
<SCRIPT LANGUAGE="JavaScript">
function ou(d) {
d.style.backgroundColor='#474d6e'; // - цвет строки в "спокойном" состоянии
}
function ov(d) {
d.style.backgroundColor='#000000'; // - цвет строки при наведении курсора
d.style.cursor= 'hand';
}
function cl(d) {
d.children.tags('a')[0].click();
}
</script>

далее в тег <tr> приписываем onmouseout='ou(this)' onmouseover='ov(this)' onclick='cl(this)'

т.е. получица <tr onmouseout='ou(this)' onmouseover='ov(this)' onclick='cl(this)'>

з.ы.
проверенно в ИЕ, работает
ниже приаттачил файл тестовый

KIT
16.05.2002, 12:10
Спасибо большое. Подсветка работает. :)))) .. я просто рад.
Там токо выдаёт ошибку на клик.
:smile:

KIT
16.05.2002, 12:29
В догонку ещё один вопрос. А как узнать значения ячеек в этой строке (примеру после двойного клика)?

neomaster
16.05.2002, 13:22
вот тебе код без ошибок:


<HTML>
<HEAD>
<TITLE></TITLE>
<META name="description" content="">
<META name="keywords" content="">
<META name="generator" content="CuteHTML">
<style type="text/css">
body {font-family: Verdana, Arial, Helvetica; font-size: 10pt;}
#tab_001 {border: #000000 solid; border-width: 1px; font-size: 8pt;}
</style>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080">

<SCRIPT LANGUAGE="JavaScript">
function ou(d) {
d.style.backgroundColor='#bebebe';
}
function ov(d) {
d.style.backgroundColor='#cdcdcd';
}
</script>

<table id="tab_001" bgcolor="#bebebe" align="center" border="0" cellpadding="5" cellspacing="0" cols="3" width="90%">
<tr onmouseout='ou(this)' onmouseover='ov(this)'>
<td align="left" valign="top" width="30%">1</td>
<td align="left" valign="top" width="30%">2</td>
<td align="left" valign="top" width="30%">3</td>
</tr>
<tr onmouseout='ou(this)' onmouseover='ov(this)'>
<td align="left" valign="top" width="30%">4</td>
<td align="left" valign="top" width="30%">5</td>
<td align="left" valign="top" width="30%">6</td>
</tr>
<tr onmouseout='ou(this)' onmouseover='ov(this)'>
<td align="left" valign="top" width="30%">7</td>
<td align="left" valign="top" width="30%">8</td>
<td align="left" valign="top" width="30%">9</td>
</tr>
</table>

</BODY>
</HTML>


а вот по поводу твоего второго вопроса, я тебе помочь не смогу

KIT
16.05.2002, 13:37
... ну чтобы не было ошибок нужно убрать лишнее - это и так понятно :smile: ... мне просто было интересно что это такое...
И ещё раз повторю СПАСИБО ...
А по поводу второго вопроса ... может кто знает как это можно реализовать через xml, к примеру ... я вот сейчас сижу и пытаюсь попробовать, но так как особо не знаю его, то увы пока не получается ... :(((

KIT
23.05.2002, 17:05
... :) .. сабж, но если кому-то интересно то вот ловите ...

<script>
function ClickTr(elem) {
var rs="";
for (var i=0;i<elem.childNodes.lenght;i++) {
rs+=childNodes[i].innerText;
}
alert(rs);
}
</script>

а в теле тэга tr прописать

<tr onclick="ClickTr(this)">

:)) Усё ... всем спасибо за участие и помощь