![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
Mam taki problem, że zrobiłam obie tabelki w Markdown i chciałabym teraz zamienić co drugi tag <tr> na <tr class="dwa">. Przy czym raz chciałabym zamieniać od pierwszego wiersza a raz od drugiego (zamieniać na: <tr class="dwa"> i odpowiednio <tr class="jeden">). Wcześniej jak miałam tabelki html w plikach to bez problemu odczytywałam je komendą file i zamineiałm w co drugim wierszu. A teraz mam całą tabelkę w łańcuch. Jak to zamienić? Przy czym chciałabym najpierw poznać najprostszy sposób bez wyrażeń regularnych.
Bardzo proszę o pomoc. pozdrawiam serdecznie Jola |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Zakładam, że chcesz zrobić wiersze kolorowane na przemian różnymi kolorami. Nie prościej więc zrobić w CSS?
http://www.w3.org/Style/Examples/007/evenodd i to samo po polsku (ale nie sprawdzałem "jakości" tłumaczenia): http://www.tlumaczenia-angielski.info/w3c/css/evenodd.html |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
Wolałabym użyć czegoś co będzie działać w większości przeglądarek. Dlatego chce pozamieniać co drugie znaczniki <tr> na takie które mają odpowiednie klasy - klasa parzysta i nieparzysta.
Powiesz mi jak to zrobić? Bardzo mi na tym zależy. pozdrawiam serdecznie Jola |
|
|
![]()
Post
#4
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli język angielski nie jest przeszkodą to możesz zerknąć tutaj: jQuery colorize table
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
Ale mi chodzi o rozwiązanie w PHP. To znaczy mam ciąg znaków i chcę w tym ciągu co drugi podciąg <tr> zamienić ma <tr class="class1">. Podpowiecie jak to zrobić?
pozdrawiam serdecznie Jola |
|
|
![]()
Post
#7
|
|
Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
Nie do końca rozumiem. Wiem, że mam zamieniać co drugie wystąpienie. Ale na wejściu mam tylko tekst w zmiennej $string. I co dalej pętla do od i=0 do i=ilosc_tr i potem to rozróżnienie na parzyste i nieparzyste i. Ale te zamiany poprzez str_replace będą dotyczyć całej zmiennej $string a to chyba niepotrzebne? JEstem już blisko zrozumienia, ale jednak nie do końca - czegoś brakuje.
pozdrawiam Jola |
|
|
![]()
Post
#10
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
kurcze zrobienie tego po stronie klienta (jQuery) jest dla Ciebie wyjściem idealnym.
|
|
|
![]()
Post
#11
|
|
Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ ![]() |
Nie wiem jak wygląda Twój ciąg, ale musisz go podzielić, korzystając np. z explode. W samym manualu właśnie jest przykład:
Jeżeli skorzystasz z for do wyświetlenia parzystych i nieparzystych to po prostu robisz echo, np. pieces[$j] gdzie $j wzrasta o jeden z każdym wykonaniem while/for czy czego tam używasz. Możesz nie zamieniać wszystkich danych w całym ciągu tylko wyświetlać go częściami. Jeżeli Twój string jest podzielony na $tablica[], a każda pozycja z $tablica[] to pojedyncza komórka, to musisz zrobić odgórny warunek, który zapewni Ci "przejście" po każdym elemencie tablicy np. $tablica[0], $tablica[1] poprzez np. licznik $i, który będzie się co rundę zwiększał. Potem zanim wyświetlisz te dane sprawdzasz czy licznik jest parzysty czy nie. Jeżeli parzysty to wyświetlasz go jako jaśniejszy wiersz, a jak nieparzysty to jako ciemniejszy. Nie wiem dlaczego nie chcesz skorzystać z innych rozwiązań, nie wiem jak wygląda Twój ciąg i jaką wiedzą dysponujesz. Dlatego zastrzegam, że może to nie być full optymalne rozwiązanie dla Ciebie. Ten post edytował Daiquiri 20.11.2009, 11:36:38 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 259 Pomógł: 0 Dołączył: 12.07.2009 Ostrzeżenie: (10%) ![]() ![]() |
ale jak miałabym użyć funkcji explode? Co miałoby być separatorem, znaki: <tr>? Właśnie tego nie rozumiem Jak podzielić, żeby w tablicy jako jej elementy mieć całe wiersze?
pozdrawiam Jola |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż Jolu na jakim kodzie operujesz.
Czy kod do wyświetlenia generujesz z tablicy (wyniki z bazy danych), czy z ciągu tekstowego (pobrany np z innej strony). Chcesz to obrobić przed wyświetleniem na stronie (w PHP), czy już po utworzeniu kodu html w przeglądarce (JavaScript). Btw W profilu nie masz zaznaczonej płci, miło, że się podpisałaś imieniem (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#14
|
|
Grupa: Administratorzy Postów: 1 552 Pomógł: 211 Dołączył: 7.07.2009 Skąd: NJ ![]() |
Tak jak wspomniał Vokiel, uchyl rąbka tajemnicy i wklej kod.
Strzelając na ślepo: Twoim dzielnikiem w explode może być np. <tr>. Jeżeli Twoja zmienna to ciąg typu $zmienna = "<tr><td>cośtam</td><td>cośtam></tr><tr><td>cośtam</td><td>cośtam></tr><tr><td>cośtam</td><td>cośtam></tr>"; Wtedy:
Pisane "z ręki" bez sprawdzania, więc mogą pojawić się błędy. Analogicznie możesz to zrobić dla innej części tabeli. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 07:08 |