Hi,

Ik heb een tabel op mijn pagina staan in het bovenste frame. Hierin laat ik gegevens zien (voornaam, achternaam) uit mijn database. Nu wil ik in het onderste frame detailgegevens laten zien van van de persoon die in het bovenste frame is aangeklikt. Op dit moment heb ik van elke waarde in de tabel (dus voor en achternaam) een linkje gemaakt. Wat ik eigelijk wil is dat de hele regel van de tabel (voor het oog) geselecteerd wordt en van kleur veranderd op het moment dat er ergens op de regel geklikt wordt. Dat je dus een blauwe balk ziet voor de geselecteerde regel. Op het moment dat je op een andere regelklikt moet die blauw worden en de voorgaande weer gewoon terug naar de originele kleur.

Feitelijk moet de bgcolor dus veranderen bij onclick maar dan voor de hele regel. Iemand een idee hoe ik dit voor elkaar krijg?

Groetjes uit Australie!
Even denken hoor, ik zag deze vraag een paar dagen terug langskomen, maar ik weet niet of dat op deze site was.

Ik geloof dat je de td's allemaal apart moet kleuren. Dus de td's allemaal een naam met ID meegeven en aan de hand van een functie(ID) de kleuren veranderen.


<script>
function ChangeIt(id) {
   document.getElementById('eerste'+id).bgcolor='#iets';
document.getElementById('tweede'+id).bgcolor='#iets';
document.getElementById('derde'+id).bgcolor='#iets';
}
</script>

en dan:

<table>
<tr><td id="eerste1"></td><td id="tweede1"></td></tr>
<tr><td id="eerste2"></td><td id="tweede2"></td></tr>
<tr><td id="eerste3"></td><td id="tweede3"></td></tr>
</table>

<iets onClick="ChangeIt(2);">


Groeten uit Zuid-Holland
Helaas werkt het nog niet helemaal, dus ik heb meer hulp nodig. Ik heb het even versimpeld om het te testen en 2 dingen geprobeerd. Ten eerste:

<?
<table>
<tr id="test" bgcolor="blue" onClick="ChangeIt(1)"><td>cel2</td>
<td>cel2</td></tr>
</table>

<script>
function ChangeIt(id) {
document.getElementById("test2").fillcolor="red";
}
</script>
<p><!--[if gte vml 1]><v:oval id="test2"
o:spid="_x0000_s1025" style='position:absolute;left:36.75pt;top:79.5pt;
width:42pt;height:26.25pt;z-index:1'/><![endif]--><![if !vml]><span
style='mso-ignore:vglayout;position:absolute;z-index:1;left:48px;top:105px;
width:58px;height:37px'><img width=58 height=37
src="new_page_190_files/image001.gif" v:shapes="test2"></span><![endif]></p>
?>

Hierbij kleurt het ovaaltje rood als ik op de tabelrij klik. Als ik echter hetvolgende doe:

<?
<table>
<tr id="test" bgcolor="blue" onClick="ChangeIt(1)"><td>cel2</td>
<td>cel2</td></tr>
</table>

<script>
function ChangeIt(id) {
document.getElementById("test").bgcolor="red";
}
</script>
?>

Dan gebeurd er niks. Het lijkt dus wel alsof ik mijn tabelrij geen "id" kan geven. Terwijl dit wel moet kunnen.....Wat doe ik verkeerd?

(ow ja natuurlijk zonder de <? en ?> die heb ik hier even ingezet om de code in een blokje te krijgen)
kan je niet de hele tabel een id geven? ik heb zelf vrij weinig verstand van javascript...

je kan trouwens ook de tags [ c o d e ] en [ / c o d e ] gebruiken om zo'n blokje te krijgen

edit:
viel in de herhaling
Probeer het zo eens?

<table>
<tr id="test" bgcolor="blue" onClick="ChangeIt(this)"><td>cel2</td>
<td>cel2</td></tr>
</table>

<script>
function ChangeIt(obj) {
obj.bgColor = "#f00";
}
</script>
?>
Is het tegenwoordig niet obj.style.backgroundColor = "#f00";?
De oplossing van Jan werkt! Bedankt!

Nu wil ik echter nog dat wanneer er een andere regel geselecteerd wordt de eerder geselecteerde weer terug springt naar zijn originele kleur.

bijv:


<table id="tabel">
<tr id="test" bgcolor="red" onClick="ChangeIt(this)"><td>cel1</td>
<td>cel2</td></tr>
<tr id="klok" bgcolor="red" onClick="ChangeIt(this)"><td>cel1</td>
<td>cel2</td></tr>
<tr id="klepel" bgcolor="red" onClick="ChangeIt(this)"><td>cel1</td>
<td>cel2</td></tr>
</table>

<script>
function ChangeIt(obj) {
obj.bgColor = "#235CDB";
test.bgColor = "red";
}
</script>


Werk niet... Iemand een idee
Dit lijkt mij het makkelijkste op te lossen met CSS
@Frits: ik mag hopen dat Sandra ondertussen een oplossing heeft gevonden; dit topic is 12 jaar oud.......
Kijk anders voortaan even naar de datum!
Deze doe ik dicht!

Reageren