Permalänk
Medlem

Byta css via länk

Har googlat runt men kan inte hitta en lösning på mitt problem. Kom ihåg att jag är ganska novis på språk förutom HTML och CSS så det är kanske lätt att åstadkomma.

Detta vill jag åstadkomma:

Jag har en index-sida, där användaren kan välja mellan tre olika teman beroende på vilken bild man klickar på.
Efter det så ska man skickas till nästa sida för alla tre länkar följande sida men med olika stylesheets för alla tre.

Problemet jag har haft hittills är att webbläsaren tror att temat ska gälla på index-sidan, inte på den följande.

Tror detta är rätt förklarat, fråga om ni inte förstår

Permalänk
Medlem
Skrivet av ZiNikor:

Har googlat runt men kan inte hitta en lösning på mitt problem. Kom ihåg att jag är ganska novis på språk förutom HTML och CSS så det är kanske lätt att åstadkomma.

Detta vill jag åstadkomma:

Jag har en index-sida, där användaren kan välja mellan tre olika teman beroende på vilken bild man klickar på.
Efter det så ska man skickas till nästa sida för alla tre länkar följande sida men med olika stylesheets för alla tre.

Problemet jag har haft hittills är att webbläsaren tror att temat ska gälla på index-sidan, inte på den följande.

Tror detta är rätt förklarat, fråga om ni inte förstår

Det kan du lösa med php relativt lätt. Du löser det med att du har ett id i urlen. Du har alltså en länk som kan se ut så här: blabla.se/index.php?id=green

Sen via lite php hämtar du idt. Och sen via ytterligare lite php byter du ut din css-länk mot ditt id+ccs, t.ex. green.css

Så här hämtar du ditt id: if (isset($_GET['id']))

Permalänk
Medlem
Skrivet av erre2:

Det kan du lösa med php relativt lätt. Du löser det med att du har ett id i urlen. Du har alltså en länk som kan se ut så här: blabla.se/index.php?id=green

Sen via lite php hämtar du idt. Och sen via ytterligare lite php byter du ut din css-länk mot ditt id+ccs, t.ex. green.css

Så här hämtar du ditt id: if (isset($_GET['id']))

EDIT: Eller så kan du göra 4 olika sidor om du inte orkar lära dig lite php. Alltså index, index1, index2 och index3 där alla de olika index-sidorna har olika css-mallar. Jobbigt!

Permalänk
Medlem
Skrivet av erre2:

Det kan du lösa med php relativt lätt. Du löser det med att du har ett id i urlen. Du har alltså en länk som kan se ut så här: blabla.se/index.php?id=green

Sen via lite php hämtar du idt. Och sen via ytterligare lite php byter du ut din css-länk mot ditt id+ccs, t.ex. green.css

Så här hämtar du ditt id: if (isset($_GET['id']))

Har lekt runt med att placera koden i både index-sidan och den följande sidan och följa men får det fortfarande inte att funka Du har inte lust att skriva ut vad som ska finnas i vilken fil? index.php och följande sida (vi säger index2.php)

Annars tack, har förstått lite i alla fall

EDIT: Ja, jag kör php-koden via en WAMP-server på min dator, så noob är jag inte, har hållit på lite med php innan

Permalänk

Lånar tråden lite då jag har funderat på detsamma faktiskt och har ett template skript som jag vill vidareutveckla åt hållet du strävar.

Kör en php-klass som ser ut som följande:

<?php class htmlTemplate { var $template; function Template($template = "") { if(file_exists($template)) { $this->file = join("", file($template)); } else { die("Fel: Template filen $template hittades inte!"); } } function parse($file) { ob_start(); include($file); $contents = ob_get_contents(); ob_end_clean(); return $contents; } function replace_tags($tags = array()) { if(sizeof($tags) > 0) { foreach ($tags as $tag => $data) { $data = (file_exists($data)) ? $this->parse($data) : $data; $this->file = eregi_replace("{" . $tag . "}", $data, $this->file); } } else { die("Fel: Inga HTML taggar hittade i template filen!"); } } function output() { echo $this->file; } } ?>

Kör den koden genom att bygga en vanlig HTML index fil som innehåller ett antal placeholders. Det jag inte får till dynamiskt är att den ska switcha och komma ihåg CSS valet på ett bra sätt.
Vet inte om man kan lösa detta smidigt med cookies eller sessions?

Visa signatur

AMD Ryzen 5800X3D | Corsair Hydro H115i RGB Platinum | 32gb G.Skill DDR4 @ 3600mhz | Asus X570-F | PowerColor RX6900XT RedDevil Ultimate | 1TB m.2 SSD gen 4 | 256gb m.2 SSD gen 4 | 1TB SATA SDD | Phanteks Revolt Pro 1000W | Phanteks Eclipse P500A