Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kolorowanie Wierszy
kicaj
post
Post #1





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Chcialbym zrobic kolorowanie wierszy w samym CSS/JS.
Zrobilem cos takiego, niesety nie dziala...
  1. onload = function color()
  2. {
  3. if( document.getElementById('wiersz').style.bgcolor == "#FF0000" )
  4. {
  5. document.getElementById('wiersz').style.bgcolor = "#0000FF";
  6. }
  7. else
  8. {
  9. document.getElementById('wiersz').style.bgcolor = "#FF0000";
  10. }
  11. }
  12.  
  13. <table border="1">
  14.  
  15. <?php
  16. //$bgcolor = "#FF0000";
  17.  
  18. while( $row = mysql_fetch_array( $results ) )
  19. {
  20. //if( $bgcolor == "#FF0000" ) // Przyklad w php, ale nie chce go stosowac
  21. //{
  22. // $bgcolor = "#0000FF";
  23. //}
  24. //else
  25. //{
  26. // $bgcolor = "#FF0000";
  27. //}
  28.  
  29. ?>
  30.  
  31. <tr>
  32. <td id="wiersz">dane...</td>
  33. </tr>
  34.  
  35. <?php
  36. }
  37.  
  38. ?>
  39.  

Jak to zrobic? Da sie w ogole?

Ten post edytował kicaj_ 26.08.2004, 16:02:03
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
Vir
post
Post #2





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 25.02.2004

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


Hmm, dawno tu nie byłem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Czy chodzi o coś takiego:

Kod
<html>
<head>
<script type="text/javascript">

function set() {

var allTDs = document.getElementsByTagName('TD');

var onColor = '#FF8000';
var offColor = '#E7E7DF';

for ( var i=0; i<allTDs.length; i++ )

  {
    allTDs[i].onmouseover=function(){ this.style.backgroundColor = onColor; }
    allTDs[i].onmouseout=function(){ this.style.backgroundColor = offColor; }
    allTDs[i].className = "bg";
  }

}


</script>
<style type="text/css">
.bg
{
  background-color: #E7E7DF;
}
</style>
</head>

<body onload="set()">

<table>
<tr>
<td>Wiersz nr 1</td>
</tr>
<tr>
<td>Wiersz nr 1</td>
</tr>
</table>

</body>
</html>


(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ps.
Możesz 'wzbogacić' kod o kolorowanie wierszy jedynie w ramach danego elementu SPAN dopisując getElementById..

np.
Kod
<html>
<head>
<script type="text/javascript">

function set() {

var allTDs = document.getElementById('test').getElementsByTagName('TD');

var onColor = '#FF8000';
var offColor = '#E7E7DF';

for ( var i=0; i<allTDs.length; i++ )

  {
    allTDs[i].onmouseover=function(){ this.style.backgroundColor = onColor; }
    allTDs[i].onmouseout=function(){ this.style.backgroundColor = offColor; }
    allTDs[i].className = "bg";
  }

}


</script>
<style type="text/css">
.bg
{
  background-color: #E7E7DF;
}
</style>
</head>

<body onload="set()">

<table>
<tr>
<td>Wiersz nr 1</td>
</tr>
<span id="test">
<tr>
<td>Wiersz nr 1</td>
</tr>
</span>
</table>

</body>
</html>
Go to the top of the page
+Quote Post
kicaj
post
Post #3





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Nie o to chodzilo...

Przez php/MySQL generuje liczbe wierszy, jak zrobic by byly na przemian pokolorowane?

Sposob w php znam, niestety chcialbym zrobic w CSS/JS
Go to the top of the page
+Quote Post
Vir
post
Post #4





Grupa: Zarejestrowani
Postów: 91
Pomógł: 0
Dołączył: 25.02.2004

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


Cytat
jak zrobic by byly na przemian pokolorowane


W takim razie:

Kod
<script type="text/javascript">

function set() {

var allTDs = document.getElementsByTagName('TD');

for ( var i=0; i<allTDs.length; i++ )

  {
    allTDs[i].className = "bg";
    i++;
  }

}

</script>
Go to the top of the page
+Quote Post
FiDO
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Masz "maly" blad bo kolorujesz na przemian komorki a nie wiersze. Drugi blad (a moze to bylo zamierzenie?) to, ze Twoj kod zmieni kolor wszystkich komorek ze wszystkich tabel, co moze zaowocowac conajmniej dziwnym wygladem strony jesli do layoutu sa uzyte tabele.
Ja proponowalbym tak:
Kod
function koloruj(id)
{
 var tab = document.getElementById(id);

 for (i = 0; i < tab.rows.length; i++)
 {
   tab.rows[i].className = (i % 2)?'par':'odd';
 }
}

Do tego
  1. <body onload="koloruj('tablica');">
  2. ...
  3. <table id="tablica" ...>
  4. ...


PS. czemu chcesz kolorowac koniecznie przez JS a nie przez php, co byloby lepszym rozwiazaniem?


PS2. przenosze na Javascript
Go to the top of the page
+Quote Post
kicaj
post
Post #6





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Vir: Podobne rozwiazanie juz dostalem na webhelp.pl
Fido: Z tym ustaleniem dla ktorej tabeli to dobry sposob... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

P.S. Dlaczego tutaj php byloby lepsze?
Go to the top of the page
+Quote Post
FiDO
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Ano dlatego, ze uniezalezniasz sie wtedy od osoby przegladajacej strone. Nie kazdy musi miec wlaczone JS, ten kod moze nie dzialac na wszystkich przegladarkach, generalnie jest to mnie wiecej analogia do tematu sprawdzania poprawnosci forumularzy za pomoca JS czy php, z tym ze w tym przypadku przy uzyciu nie ucierpi bezpieczenstwo a jedynie wyglad.
Go to the top of the page
+Quote Post
AyZeL
post
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 5.04.2006

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


Witam.

A jakbyscie rozwiazali problem kolorowania komorek w zaleznosci od atrybutu "name" ?
Go to the top of the page
+Quote Post
Zajec
post
Post #9





Grupa: Zarejestrowani
Postów: 1 086
Pomógł: 8
Dołączył: 10.12.2003

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


Cytat(AyZeL @ 2006-04-05 14:19:19)
Witam.

A jakbyscie rozwiazali problem kolorowania komorek w zaleznosci od atrybutu "name" ?

Kod
td[name="raz"] { color: red; }
td[name="dwa"] { color: blue; }
Go to the top of the page
+Quote Post
AyZeL
post
Post #10





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 5.04.2006

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


No dziekuje, ale chodzilo mi raczej o rozwiazanie java, poniewaz dodalbym do tego jeszcze onmouseover i otrzymalbym pozadany efekt. W sumie to mam juz pomysl jak to wykonac, ale prosilbym jednak o podpowiedzi.
Go to the top of the page
+Quote Post
mike
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(AyZeL @ 2006-04-05 22:04:57)
(...) poniewaz dodalbym do tego jeszcze onmouseover i otrzymalbym pozadany efekt.

Kod
td[name="raz"] { color: red; }
td[name="dwa"] { color: blue; }

td[name="raz"]:hover { color: #f00; } /*kolor po najechaniu*/
td[name="dwa"]:hover { color: #f00; } /*kolor po najechaniu*/


A po co pchać się z JavaScrpit'em tam gdzie go nie potrzeba?
Go to the top of the page
+Quote Post
TomASS
post
Post #12





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

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


Majku, ale IE nie obsługuje 'hoverów' na coś innego niż <a>...... chyba, że się doda 'behaviora':

tutaj można o tym przeczytać oraz drobna uwaga.

(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował TomASS 5.04.2006, 23:10:30
Go to the top of the page
+Quote Post
AyZeL
post
Post #13





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 5.04.2006

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


Juz wytlumaczam czemu tak chce :]
Wiec moim pozadanym efektem bylo by podswietlanie dowolnych komorek tabeli po najechaniu na jadna z nich. Np. te komorki moga byc wstawione w znacznik <span> co wydaje mi sie najodpowiedniejsza droga rozwiazania tego problemu + uzycie funkcji getElementsByTagName.
Javascriptem zajmuje sie dopiero od 5 dni i jak narazie nie jestem w stanie rozwiazac tego sam.

=====================================================

Juz sobie poradzilem :]

Ten post edytował AyZeL 6.04.2006, 22:29:22
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.12.2025 - 03:05