Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zaznaczanie checkbox
Vomit
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 23.01.2006

Ostrzeżenie: (0%)
-----


Witam,

mam tabelke, i chcialby za pomcoa checboxa nie tylko zaznaczyc go, ale takze zmienic kolor tła calego wiersza.

Wykombinowalem takie cos:

Kod
<style type="text/css">
#hehe
{
    background: #00CCFF;
}
</style>
<script language="javascript">
var i = 0;
function click()
{
    if ( i == 0 )
    {
  i = 1;
  document.getElementById('hehe').style.background = '#FF6633';
  
    }
    else
    {
  i = 0;
  document.getElementById('hehe').style.background = '#00CCFF';
    }    
}
</script>


Kod
{@setvar(var="i" val=0)}
<table width="400" border="1">
{@list(teachers)}
<tr id="hehe" class="hehe"><td>{@math(i+1)}</td><td>{teachers['teacherNames']}</td><td>{teachers['teacherSurname']}</td><td><input type="checkbox" name="id" onchange="javascript:click();"></td></tr>
{@end}
</table>


Ale niestety nie dziala. Gdzie co poprawic?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
siemakuba
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


nie wiem czy to wystarczy, ale zdecydowanie
Kod
document.getElementById('hehe').style.backgroundColor = '#FF6633';

zamiast
Kod
document.getElementById('hehe').style.background = '#FF6633';


pozdr.
Go to the top of the page
+Quote Post
Vomit
post
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 23.01.2006

Ostrzeżenie: (0%)
-----


Raczej nie. Nawet nie sprawdzam.

Skrypt zdiala poprawnie jesli skorzystam z niego w taki sposob:
  1. <a href="javascript:click()">asdsad</a>


nie potrafie jednak z niego skorzystac aby w momencie zaznaczenia checboxa funkcja zostala zastosowana.
Go to the top of the page
+Quote Post
TomASS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Spróbuj podglądnąć tutaj jak zmieniam kolor wiersza.


--------------------
Go to the top of the page
+Quote Post
siemakuba
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


no tak... nie zwróciłem uwagi... banalność, ehh..

zmiana:
Kod
onchange="javascript:click();"

onchange="click();"

powinna problem rozwiązać.
Go to the top of the page
+Quote Post
Vomit
post
Post #6





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 23.01.2006

Ostrzeżenie: (0%)
-----


siemakuba, bylby zbyt banalny, nie mysl, ze tego nie sprawdzalem wczesniej, nie dziala.

TomASS: podejrzalem, jednak jestem juz o krok od wlasnego rozwiazania problemu.

brakuje mi tylko jednego: co tam powinno byc

<input type="checkbox" costam="funkcja();">

Brakuje mi tego costam. A moze w ogle tak sie nie da?
Go to the top of the page
+Quote Post
siemakuba
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

Ostrzeżenie: (0%)
-----


hmm, skoro tak, to faktycznie problem leży w odpowiednim dobraniu zdarzenia na jakie ma zareagowac funkcja.
próbowałeś onclick?

i jeszcze jedno, nie wiem jakie masz style, ale jezeli definiujesz w nich kolor tla dla TD, to zmiany przez JS dla TRa nic nie dadzą. Moze sproboj zamiast:
Kod
document.getElementById('hehe').style.background = '#FF6633';

dać:
Kod
var eRow = document.getElementById('hehe');
var eCells = eTR.getElementsByTagName('TD');

for (var eCell in eCells)
{
    eCell.style.backgroundColor =  '#FF6633';
}

pozdr.
Go to the top of the page
+Quote Post
Tajny
post
Post #8





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 28.07.2005
Skąd: 64-100 Leszno

Ostrzeżenie: (0%)
-----


onclick powinno wystarczyc, status checkboxa mozesz sprawdzic np przez
document.getElementById('twoj_check').checked

zwroci true lub false i zawsze mozesz mu zmienic przypisujac np
document.getElementById('twoj_check').checked=true;


np.
Kod
<input type="checkbox" id="act.check" onclick="javascript:CheckMe('act.check');">


<script>

function CheckMe(ID){
var IDA=document.getElementById('ID');
  if (ID=='act.check') {
         //twoje funkcje tutaj
         //np.
         if (IDA.checked==false)  {
         //jesli byl zaznaczony

         } else {
            //w przeciwnym wypadku
         }

}

}

</script>


a co do zmiany styli to proponuje abys utworzyl 2 klasy dla TD , jedno dla odznaczonego (o nazwie TD.default ) , drugie dla zaznaczonego ( TD.my_selected)

style mozesz zmieniac przez className

czyli

<td class="default" id="wiersz.80"></td>

i np. po wcisnieciu checkboxa niech zmieni sie jego classname

Kod
<script>

function CheckMe(ID){
var IDA=document.getElementById('ID');
  if (ID=='act.check') {
         //twoje funkcje tutaj
         //np.
         if (IDA.checked==false)  {
         //jesli byl zaznaczony
document.getElementById('wiersz.80').className='my_selected';

         } else {
            //w przeciwnym wypadku
document.getElementById('wiersz.80').className='default';
         }

}

}

</script>


pamiętaj że zmiana całej klasy jest szybsza niż elementu stylu

http://www.quirksmode.org/dom/classchange.html

Ten post edytował Tajny 11.05.2006, 00:13:37


--------------------
"Who controls the past controls the future. Who controls the present controls the past. "
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 23:01