Zum Inhalt springen

CSS Datei durch Link austauschen?


Empfohlene Beiträge

Geschrieben

Hi, bin hier gerade am rumbasteln, hab auch schon einiges gefunden aber leider nicht wirklich das richtige.

Will eine Website erstellen, die durch den klick auf einen Link die externe Stylesheet datei verändert. die beiden Stylesheets, nennenwir wie style1.css und style2.css sind schon da.

ich will also das wenn man auf den Link geht style1.css durch style2.css ersetzt wird.

"wichtig" ist, das ein weiterer klick auf den selben link (der is ja noch da, nur die farben haben sich verändert in meinem fall) wieder style2.css durch style1.css zurück-ersetzt wird.

das ganze sollte ohne javascript funktionieren, HTML und PHP is aber ok.

hab mich bissl mit dem style-switcher probiert aber kam nich wirklich klar damit.

geht das überhaupt ohne javascript, das der selbe button (link) die css-datei immer hin und hertauscht?

danke schonmal.

Geschrieben


<a href="?style=css1">link</a>
[/PHP]

[PHP]
<?php
$defaultCss = "css1";
$css = array_key_exists('style', $_GET) ? $_GET['style'] : $defaultCss;
$css .= ".css";
echo << LINK
<link rel="stylesheet" href="$css" />
LINK;
?>

Geschrieben

klar geht das....

dazu wäre es aber schön wenn du sessions verwendest


<?php
session_start();
if ( empty( $_SESSION['sitestyle'])) {
$_SESSION['sitestyle'] = 'style1.css';
}

if ( !empty( $_GET['sitestyle'])) {
$_SESSION['sitestyle'] = $_GET['sitestyle'];
}

function toggleCss() {
return $_SESSION['sitestyle'] == 'style2.css' ? 'style1.css' : 'style2.css';
}

?>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="<?php echo $_SESSION['sitestyle'] ?>">
</head>
<body>
<a href="?sitestyle=<?php echo toggleCss() ?>">SiteStyle-Wechseln</a>
</body>
</html>
[/PHP]

Geschrieben

danke schonmal. mit den sessions gibt es allerdings fehlermeldungen:

Warning: Cannot send session cookie - headers already sent by (output started at /home/httpd/htdocs/***.de/***/index.php:1) in /home/httpd/htdocs/***.de/***/index.php on line 2

Warning: Cannot send session cache limiter - headers already sent (output started at /home/httpd/htdocs/***.de/***/index.php:1) in /home/httpd/htdocs/***.de/***/index.php on line 2

kann damit jemand was anfangen? headers already sent. weiß nicht wieso.

"line2" ist übrigens die, wo die session starten soll.

Geschrieben

Du must die Sachen in Session schreiben, BEVOR irgendwelche Daten von dir beim Benutzer ankommen; d.h. BEVOR du das erste "echo" benutzt und noch VOR deinem HTML-Code.

Geschrieben

da ist nichts davor. darum wundere ich mich ja über die Meldung:

<?php

session_start();

if ( empty( $_SESSION['sitestyle'])) {

$_SESSION['sitestyle'] = 'global1.css';

}

if ( !empty( $_GET['sitestyle'])) {

$_SESSION['sitestyle'] = $_GET['sitestyle'];

}

function toggleCss() {

return $_SESSION['sitestyle'] == 'global2.css' ? 'global1.css' : 'global2.css';

}

?>

<html>

<head>

<title>blabla</title>

so gehts in der ersten zeile los.

Geschrieben

es geht, hatte mich wohl nur vertippt vorhin. danke nochmal euch allen.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...