Autor Zpráva
Norken
Profil *
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
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 *
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 *
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 *
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
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 *
$background-color = "#FFFFFF";

"-" je operátor odčítání.
JanJanuska
Profil
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
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
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 *
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
V názve premennej nemôže byť pomlčka, už to spomínal DoubleThink.
Norken
Profil *
tak som zmenil to "background-color" na "bc" ale stale to robi tak ako som popisal vyssie
AM_
Profil
Podívej se jen na ten highlight tady na diskusi a dojde ti kde máš syntaktickou chybu.
Norken
Profil *
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
Rámu? tam používáš frames nebo jsi tím myslel něco jiného?
Norken
Profil *
Presne toto

bg1 je modre a bg2 sive. Ziadne ramy len table a td
AM_
Profil
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 *
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
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)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: