[CSS][PHP] podmiana styli po wczytaniu z bazy MySQL |
[CSS][PHP] podmiana styli po wczytaniu z bazy MySQL |
20.11.2019, 18:12:33
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 22.04.2012 Ostrzeżenie: (0%) |
Cały serwis wykonany jest w PHP ze stałymi tablicami CSS, ale dane (informacje) doczytywane są z bazy w pętlach while(). Problem zaistniał gdy trzeba zrobić przełączaną wersję "kontrastową" - czyli czarne tło i białe lub żółte znaki. Gówny layout nie był problemem, bo zrobiono nowe tablice CSS, ale dane...
No właśnie - w bazie jest tysiące wpisów z zapisanymi kolorowanymi tabelami ze swoimi stylami. Można by zapytaniem sal "wykosić" background i Color, ale straci sie wtedy kolorystyce w podstawowej wersji serwisu. No i pytanie - czy jest możliwe po wczytaniu rekordu z bazy (przed wysłaniem do przeglądarki podmienić wpis. Dla przykładu: Kod <td style="background: #F0F0F0; width: 40%; border: 1px solid #d8d8d8; height: 30px; padding-left: 5px;"> z zamianą background: #F0F0F0; na #000000, a jeżeli wystąpi Color #333 na np Color #333?Przeczucie mówi mi, że nie, więc jakaś inna deska ratunku? Załączam link to przykładu wyświetlanej tabelki, ale nie wiem czy to forum pozwoli na to. Kod https://drive.google.com/file/d/1-hE80sZAbkLFWFwZAYjUPgca2Hfl-AXT/view?usp=sharing
Ten post edytował bogdanh 20.11.2019, 18:13:12 |
|
|
20.11.2019, 18:19:43
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Gówny layout nie był problemem, bo zrobiono nowe tablice CSS, ale dane... Wyczuwam nosem jednak problem. Możesz użyć !important, aby nadpisać style inline. Ale chyba by było lepiej przenieść style inline table do arkusza styli (i usunąć). -------------------- |
|
|
20.11.2019, 19:39:29
Post
#3
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 22.04.2012 Ostrzeżenie: (0%) |
Wyczuwam nosem jednak problem. Możesz użyć !important, aby nadpisać style inline. Ale chyba by było lepiej przenieść style inline table do arkusza styli (i usunąć). Zgadza się daje sie wyczuć i to niemały zapaszek... Dodatkowo - jestem amatorem, a muszę coś wykombinować. Poczytam o important, bo jedynie słyszałem... Nie rozumiem tylko przenoszenia do tablicy i kasowania. Dane są wczytywane z bazy, przypisywane zmiennej, a ta zwyczajnie wyświetlana. W zmiennej zapisane są całe tabele z zawartą treścią. Myślałem o "wyłowieniu" i podmianie parametru np. background: #coś_tam na background: #000 i color: #333 na color: #FFF (dla przykładu), a potem dopiero wyświetlanie zmiennej. Tylko czy to dobry pomysł? |
|
|
20.11.2019, 19:49:32
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Myślałem o "wyłowieniu" i podmianie parametru np. background: #coś_tam na background: #000 i color: #333 na color: #FFF (dla przykładu), a potem dopiero wyświetlanie zmiennej. Nie wiem co masz na myśli pisząc o wyświetlaniu zmiennej. Jakiej zmiennej? Gdzie wyświetlanej? Ja sugerowałem, aby przenieść style inline do arkusza styli. -------------------- |
|
|
20.11.2019, 21:28:29
Post
#5
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 22.04.2012 Ostrzeżenie: (0%) |
Nie wiem co masz na myśli pisząc o wyświetlaniu zmiennej. Jakiej zmiennej? Gdzie wyświetlanej? Ja sugerowałem, aby przenieść style inline do arkusza styli. Nieporozumienie... O inline muszę dopiero poczytać. Dodatkowo pomyślałem o... Z bazy w pętli wczytuje zawartości pól powiedzmy o nazwie "Treść" - zapisuje do zmiennej $tresc. - w zmiennej znajduje się coś w stylu [kode]<td style="background: #F0F0F0; width: 40%; border: 1px solid #d8d8d8; height: 30px; padding-left: 5px;">tutaj jakaś treść<td>I tak dalej ...</tr></table>.........[/code] - wyszukuję w zmiennej ciąg "background: #..." i zamieniam to na '', podobnie postępuje z "color: #..." - po zamianie ciągów dopiero echo/print w ujęciu div id="tresc" echo $zmienna/div, a w tablicy css ustalam kolory dla #tresc. Inaczej styl z div nie zadziałał, bo poprzednio wewnątrz był styl z bazy z innymi kolorami niż czarny i biały. Trochę pokrętnie to wyjaśniłem, ale może da sie zrozumieć. No i - czy metoda "inline" była by prostsza czy podmiana w zmiennej? |
|
|
20.11.2019, 21:43:01
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Styl inline, to jest właśnie ten sposób jakim obecnie są ostylowane tabele.
Podobne, o którym piszesz właśnie sugerowałem. -------------------- |
|
|
21.11.2019, 19:13:06
Post
#7
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 22.04.2012 Ostrzeżenie: (0%) |
Rozwiązałem problem przy pomocy funkcji ereg_replace.
Czyli np: Kod $tresc = ereg_replace('background: #[a-zA-Z0-9_]+;' , 'background: #0000;' , $tresc); W każdym razie działa. Dziękuję za podpowiedzi. |
|
|
21.11.2019, 19:18:52
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Jeszcze poczytaj dokumentację: Warning
This function was DEPRECATED in PHP 5.3.0, and REMOVED in PHP 7.0.0. -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 28.03.2024 - 19:39 |