Autor | Zpráva | ||
---|---|---|---|
Norken Profil * |
#1 · Zasláno: 15. 5. 2009, 18:33:24
Caute, robim jeden script a chcel by som asi toto.
Ked si uzivatel zada do prehliadacu www.mojweb.sk/index.php?background-color=red Tak mu da vsetky tabulky cervene. to mi ide cez toto if(!isset($_GET['background-color']) || empty($_GET['background-color'])){ $background-color = "#FFFFFF"; } else { $background-color = $_GET['background-color']; } td { color: ' . $td_color . '; background-color: ' . $background-color . '; } No ale ja by som to chcel tak, ze ak uzivatel nezada "?background-color=xxxxx" tak css webu nebude ani brat background-color a da tabulky "priehladne". Pretoze ked to mam teraz na default bielu tak tabulky priehladne neda ale biele a o to mi prave ide. Diks |
||
Jan Tvrdík Profil |
#2 · Zasláno: 15. 5. 2009, 18:45:52
Norken:
Nemám ani zdání, co po nás chceš (buď neumíš slovensky ty nebo já). Zkus místo #FFFFFF dát transparent. |
||
Norken Profil * |
#3 · Zasláno: 15. 5. 2009, 18:52:17
chcem preste to :) aby bolo miesto farby #FFFFFF -> transparentne pozadie, akurat ze ked to prepisem len na to transparent tak to nejde a je tam stale biele pozadie
|
||
Mezerník Profil * |
#4 · Zasláno: 15. 5. 2009, 20:49:59
if(!isset($_GET['background-color']) || empty($_GET['background-color'])){ $background-color = "#FFFFFF"; } else { $background-color = $_GET['background-color']; } td { color: ' . $td_color . '; ' if ($background-color == "#FFFFFF") { echo 'background: transparent;'; } else { echo 'background-color: ' . $background-color . ';'; } } |
||
Norken Profil * |
#5 · Zasláno: 15. 5. 2009, 21:07:40
Nech skusam co skusam hadze mi to stale chybu
Parse error: syntax error, unexpected T_IF, expecting ',' or ';' in /var/www/index.php on line 101 101 je echo 'background: transparent;'; dakujem vopred vsetkym za pomoc |
||
AM_ Profil |
#6 · Zasláno: 15. 5. 2009, 23:40:36
Na tomhle řádku syntaktická chyba není, zřejmě je těsně před ním nebo za ním; chybí ti tam nějaký středník nebo něco, to si snad zvládneš najít ;)
|
||
DoubleThink Profil * |
#7 · Zasláno: 16. 5. 2009, 00:25:38 · Upravil/a: DoubleThink
$background-color = "#FFFFFF"; "-" je operátor odčítání. |
||
JanJanuska Profil |
#8 · Zasláno: 16. 5. 2009, 11:51:08
Presne tak, "-" nemôžeš použiť do názvu premennej.
Citujem: "No ale ja by som to chcel tak, ze ak uzivatel nezada "?background-color=xxxxx" tak css webu nebude ani brat background-color". Dá sa to urobiť úplne jednoducho: <?php if ($_GET['background_color'] == 'red'){ $pozadie = 'background-color: red;'; } ?> <style> td { color: black; <?php echo $pozadie; ?> } </style> |
||
AM_ Profil |
#9 · Zasláno: 16. 5. 2009, 12:15:00 · Upravil/a: AM_
JanJanuska
To by mělo dvě kosmetické vady: - omezení počtu možností barvy pozadí (čím menší omezení, tím rozsáhlejší kód) - v případě, že se nepředá parametr, ohlásí to nedefinovanou proměnnou $pozadie; - Norken chtěl zadávání pomocí hexa kódu, ne pomocí předdefinované barvy Efektivnější přepis první části by byl: <?php $pozadie = (isset($_GET['pozadie']) && preg_match('/^([0-9a-f]{6})|([0-9a-f]{3})$/i', $_GET['pozadie'])) ? $_GET['pozadie'] : 'white'; //za white dosadit defaultni barvu ?> |
||
JanJanuska Profil |
#10 · Zasláno: 16. 5. 2009, 13:11:21
Snažil som sa to napísať čo najjednoduchšie. Čo sa týka toho ohlásenia, tak záleží od nastavení, ale je pravda, že je to trochu "prasáreň" (vrátane $_GET).
Njn, ja som to pochopil tak, že bude na výber niekoľko farieb (v poli), z ktorých si užívateľ vyberie. Snažil som sa načrtnúť základnú "myšlienku", autor by si to už upravil podľa svojich potrieb. Ak bude môcť zvoliť akúkoľvek farbu (v hexa), tak máš samozrejme pravdu, no mohol si to napísať aj prehľadnejšie. |
||
Norken Profil * |
#11 · Zasláno: 16. 5. 2009, 17:38:39
Snažil som to dať do kopy ale mám z toho ešte väčší guláš ako som mal a už mi farby vôbec neberie.
Spravil som si to na novo a už to funguje tak na 80% Teda ak je http://localhost/index.php?background-color1=D6E5EF&background-color2=black Tak vnútro tabuľky je sivé a rámy sú čierne Ale keď dám http://localhost/index.php?background-color1=transparent&background-color2=black Tak je to celé čierne, transparentné ide len ak dám http://localhost/index.php?background-color1=transparent&background-color2=transparent alebo teda bez, len index.php, alebo teda čiastočne, že aj rámy sú transparent http://localhost/index.php?background-color1=black&background-color2=transparent Takže ešte mi treba doladiť to vnútro tabuľky Kód <?php if(!isset($_GET[background-color1']) || empty($_GET['background-color1'])){ $background-color1 = "transparent"; // default } else { $background-color1 = $_GET['background-color1']; } if(!isset($_GET['background-color2']) || empty($_GET['background-color2'])){ $background-color2 = "transparent"; //default } else { $background-color2 = $_GET['background-color2']; } <style type="text/css"> <!-- table { font-family: verdana, arial, sans-serif; font-size: 10pt; color: ' . $background-color2 . '; background-color: ' . $background-color2 . '; } td { color: ' . $td_color . '; background-color: ' . $background-color1 . '; } --> </style> ?> |
||
Yur4Y Profil |
#12 · Zasláno: 16. 5. 2009, 17:54:54
V názve premennej nemôže byť pomlčka, už to spomínal DoubleThink.
|
||
Norken Profil * |
#13 · Zasláno: 16. 5. 2009, 21:16:17
tak som zmenil to "background-color" na "bc" ale stale to robi tak ako som popisal vyssie
|
||
AM_ Profil |
#14 · Zasláno: 16. 5. 2009, 21:18:01
Podívej se jen na ten highlight tady na diskusi a dojde ti kde máš syntaktickou chybu.
|
||
Norken Profil * |
#15 · Zasláno: 17. 5. 2009, 16:30:11
Trapim sa stym uz dost dlho a stale to iste. Ved ked tie ramy idu a mam to napisane tak isto, tak preco nejde aj to vnutro tabulky? Ked dam transparent len to vnutro tak si zoberie ta tabulka farbu z toho ramu, fakt nechapem :D a chybu si najst neviem ak ju tam stale mam :(
if(!isset($_GET['bg1']) || empty($_GET['bg1'])){ $bg1 = "transparent"; // default } else { $bg1 = $_GET['bg1']; } if(!isset($_GET['bg2']) || empty($_GET['bg2'])){ $bg2 = "transparent"; // default } else { $bg2 = $_GET['bg2']; } style table { font-family: verdana, arial, sans-serif; font-size: 10pt; color: ' . $bg1 . '; background-color: ' . $bg1 . '; } td { color: ' . $td_color . '; background-color: ' . $bg2 . '; }} |
||
AM_ Profil |
#16 · Zasláno: 17. 5. 2009, 18:11:11
Rámu? tam používáš frames nebo jsi tím myslel něco jiného?
|
||
Norken Profil * |
#17 · Zasláno: 17. 5. 2009, 20:26:30
Presne toto
bg1 je modre a bg2 sive. Ziadne ramy len table a td |
||
AM_ Profil |
#18 · Zasláno: 17. 5. 2009, 21:07:34
když se na to teď dívám, proč má tabulka stejnou barvu popředí i pozadí?
a vůbec nikde tam nepřiřazuješ proměnnou $td_color... tak se v tom trochu ztrácím... |
||
Norken Profil * |
#19 · Zasláno: 17. 5. 2009, 21:21:18
to stou farbou som dal naschval, pretoze by mohla byt napr. cervena, fialova atd. (terajsia siva), ale aj transperenta a o to mi ide.
teda ak som ta spravne pochopil :) a prave to mi nefunguje. Pokial zadam bg2 transparent tak hodi tu farbu (terajsiu sivu) na modru a vobec nie na "transparentnu". Iba pokial dam bg1 aj bg2 transparent to $td_color mam predvolene v style, resp. administracii to sa zmenit dat nebude. je to vlastne farba pisma v tej tabulke |
||
AM_ Profil |
#20 · Zasláno: 18. 5. 2009, 04:53:42
Aha, takže jde o to, že se ti nezprůhlední rámy? myslím, že transparent ani není přípustná barva popředí, budeš to muset řešit jinak (u tabulky si color vůbec neurčuj, nastavuj pouze border u td, který v případě průhledné vypneš (border:0px none), v případě barvy mu ji přiřadíš (border: 1px solid #barva)
|
||
Časová prodleva: 15 let
|
0