Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php + css] Dynamiczny css w php
Forum PHP.pl > Forum > Przedszkole
taqu
Witam!

Chce zrobic dynamiczny css na stronie tzn.
Po kliknięciu np. na link "BLue" jest podmieniay plik *.css z odpowiednim schematem kolorów.
Zrobiłem cos takiego w js , ale oczywiscie wszędzie działało oprócz IE aaevil.gif

tu jest mój skrypt w php:

  1. <?php
  2. if ($style == "skin3" ) {
  3.     $choice = "skin3";
  4. } elseif ($style == "skin2" ) {
  5.     $choice = "skin2";
  6. } else {
  7.     $choice = "skin1";
  8. }
  9. ?>



menu:
  1. <?php
  2.  
  3.  
  4. <a href="?style=skin2">skin2</a> |
  5. <a href="?style=skin3">skin3</a> |
  6. <a href="?style=skin1">skin1</a> |
  7.  
  8.  
  9. ?>

no i link do podmiany css smile.gif :


  1. <link rel="stylesheet" type="text/css" href="<?php echo "$choice"; ?>.css" media="screen"  />



Skrypt działa , ale niestety statycznie. Podmienia css strony na której kliknołem w link.
Wysyła coś takiego index.php?style=skin2
Chodzi o to , że jak raz klinkne to zeby juz na wszytkich był taki sam css.
np: index.php?id=7&style=skin2.

Z góry dziękuje za pomoc.

Pozdrawiam! guitar.gif
joshua
po to istnieją cookies przecież winksmiley.jpg
taqu
Cytat(joshua @ 2006-04-30 13:43:34)
po to istnieją cookies przecież winksmiley.jpg

to tez wiem smile.gif

Ale nie wiem jak to zrobić ,żeby trybiło tak jak chce:)

Więc moze ktoś bedzie tak miły i mi pomoże guitar.gif
Master Miko
Są dwa sposoby...

Coookies lub sesje...

cookies łatwiej:
http://php.net.pl/manual/pl/function.setcookie.php


  1. <?php
  2.  
  3.  
  4.  
  5.  
  6. $value = $_GET['style'];
  7.  
  8. setcookie ("PlikCss", $value,60*60*24); // ustawienie cooookies - ważność 1 dzień
  9.  
  10.  
  11. ?>



  1. <link rel="stylesheet" type="text/css" href="<?php echo $_COOKIE["PlikCss"]; ?>.css" media="screen"  />




Niektórzy mają wyłączone cookies w przeglądarkach... więc wtedy sesje są lepszym rozwiązaniem.....
taqu
Dzieki smile.gif
Jeśli chciał bym wykorzystac sesje to jak by to wyglądało ?

Może mógłbyś dać jakiś przykład ze zmodyfikowanym miom kodem snitch.gif
guitar.gif
Master Miko
Na sesjach:

  1. <?php
  2.  
  3.  
  4. session_start(); // w każdym skrypcie musisz to dać (na początku)
  5.  
  6. // ustaw domyślny skin, jeśli jeszcze to nie zostało zrobione
  7. if(empty($_SESSION['PlikCss'] )) { $_SESSION['PlikCss'] = "domyslnySkin"; } 
  8.  
  9.  
  10. // jeśli w linku jest np. style=skin1
  11. if(!empty($_GET['style'])) { 
  12.  
  13. // pobieramy styl np. (skin2) (wystarczy tylko raz, potem sesja zapamięta styl)
  14.  
  15. switch($_GET['style']) {
  16.  
  17. case "skin1":
  18. $_SESSION['PlikCss'] = "skin1";
  19. break;
  20.  
  21. case "skin2":
  22. $_SESSION['PlikCss'] = "skin2";
  23. break;
  24.  
  25. case "skin3":
  26. $_SESSION['PlikCss'] = "skin3";
  27. break;
  28. }
  29. }
  30.  
  31.  
  32.  
  33. ?>



  1. <link rel="stylesheet" type="text/css" href="<?php echo $_SESSION['PlikCss']; ?>.css" media="screen"  />



Jest to lepiej zrobione niż poprzednio... bo tam się nie postarałem... ale z cookies to samo można osiągnąć.
taqu
Dzięki bradzo ,działa guitar.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.