verschillende css's laden
Ik ben bezig met een portfolio en daar wil ik graag dat je verschillende css's kan laden.
Hoe doe ik dat?
Het enige wat ik heb kunnen vinden is het volgende:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Groepsreizen Europa</title>
<link rel="stylesheet" type="text/css" id="maincssfile" media="screen" href="cssdocument1.css" />
</head>
<body onload="">
hallo allemaal :)<br/><button onclick="document.getElementById('maincssfile').href='cssdocument2.css';">laadt CSS document</button>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Groepsreizen Europa</title>
<link rel="stylesheet" type="text/css" id="maincssfile" media="screen" href="cssdocument1.css" />
</head>
<body onload="">
hallo allemaal :)<br/><button onclick="document.getElementById('maincssfile').href='cssdocument2.css';">laadt CSS document</button>
</body>
</html>
Alleen nu zou ik graag een uitklap menu willen zodat je daar kan kiezen.
En wanneer je je keuze gemaakt hebt (je klik dus op je keuze) dat hij dat dan gelijk laadt.
MAAR hij moet dat dan vervolgens bij al mijn pagina's doen.
Nu heb ik begrepen dat je dat met cookie's kan doen. Alleen weet ik niets van cookies af.
Kunnen jullie mij helpen.
Groet, Steven
er staat hier ergens een script/tutorial over dynamische css. dat heb je denk ik nodig
Dank je wel.
Post wel weer als ik er niet uit kom ;)
post wat je tot zover hebt (de (relevante) code)
wat is het probleem/wat gaat er fout
en wat moet het bereiken.
Maak een X aantal CSS bestanden aan en zet in een sessie welke geinclude moet worden ;-)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
session_start();
$aStyles = array(
'blue' => 'blue.css',
'red' => 'red.css',
'green' => 'green.css'
);
if(isset($_GET['style']) && in_array($_GET['style'], array_keys($aStyles)))
{
$_SESSION['style'] = $aStyles[$_GET['style']];
}
else
{
if(!isset($_SESSION['style']))
{
$_SESSION['style'] = 'blue.css';
}
}
// Check
echo $_SESSION['style'] . ' is geselecteerd.'
?>
<form method="get" action="">
<select name="style">
<option value="blue">Blauw</option>
<option value="red">Rood</option>
<option value="green">Groen</option>
</select>
<input type="submit" value="Verander style" />
</form>
session_start();
$aStyles = array(
'blue' => 'blue.css',
'red' => 'red.css',
'green' => 'green.css'
);
if(isset($_GET['style']) && in_array($_GET['style'], array_keys($aStyles)))
{
$_SESSION['style'] = $aStyles[$_GET['style']];
}
else
{
if(!isset($_SESSION['style']))
{
$_SESSION['style'] = 'blue.css';
}
}
// Check
echo $_SESSION['style'] . ' is geselecteerd.'
?>
<form method="get" action="">
<select name="style">
<option value="blue">Blauw</option>
<option value="red">Rood</option>
<option value="green">Groen</option>
</select>
<input type="submit" value="Verander style" />
</form>
Probeer dit scriptje allereerst te begrijpen. Daarna zul je zien dat je $_SESSION['style'] kunt gebruiken om de betreffende stylesheet te laden.
Het script van Blache doet het niet :-(
Wanneer ik het php gedeelte eruit haal laat hij iig de pagina zien :-s
Maar dat is de bedoeling ook weer niet.
Hieronder de code van Blanche:
[linebreak]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">[linebreak]<html xmlns="http://www.w3.org/1999/xhtml">[linebreak]<head>[linebreak]<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />[linebreak]<title>Untitled Document</title>[linebreak][linebreak]</head>[linebreak]<body bgcolor="#000000">[linebreak]Code (php) 12345678910111213141516171819202122232425 <?phpsession_start();$aStyles = array( red => css1.css green => css2.css, blue => css3.css, orange => css4.css); if(isset($_GET[style]) && in_array($_GET[style], array_keys($aStyles))){ $_SESSION[style] = $aStyles[$_GET[style]];}else{ if(!isset($_SESSION[style])) { $_SESSION[style] = red.css; }}// Checkecho $_SESSION[style] . is geselecteerd.?> [linebreak][linebreak][linebreak][linebreak]<form method="get" action="">[linebreak]<select name="style">[linebreak] <option value="green">Groen</option>[linebreak] <option value="blue">Blauw</option>[linebreak] <option value="orange">Oranje</option>[linebreak]</select>[linebreak]<input type="submit" value="Verander style" />[linebreak]</form>[linebreak]</body>[linebreak]</html>[linebreak]
Hier de URL: http://dzjunior.byethost9.com/test/css/cssladen.php
Is er alleen ook nog ergens een optie om het te laten onthouden in cookies?
Zodat ALLE pagina's er het zelfde uit zien??
javascript het werk voor je doen?
Laat Jij zult zelf nog de benodigde HTML moeten scripten waarin je $_SESSION['style'] gebruikt om de betreffende stylesheet in te laden. Die echo die ik geef, is alleen een controle dat het scriptje werkt en die kan jij dus gewoon verwijderen...
Quote:
Mijn voorbeeld maakt gebruik van een sessievariabele. Die is beschikbaar op elke pagina die je met session_start() begint. Je hebt dus in principe geen cookies nodig. Dit zou je alleen nog kunnen toepassen als je de bezoeker bij terugkomst op je site direct weer dezelfde style wilt voorschotelen.Is er alleen ook nog ergens een optie om het te laten onthouden in cookies?
Zodat ALLE pagina's er het zelfde uit zien??
Zodat ALLE pagina's er het zelfde uit zien??
Maar goed, dan kun jij dus zelf verder met dat voorbeeldje aan de slag om de betreffende variabele ook in een cookie op te slaan...
ps. @Mitchell: alles leuk en aardig, maar hoe wil je er dan ooit voor zorgen dat de gemaakte keuze bewaarde blijft?
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Alleen (miss lullig) als ik op een andere link klik, heeft die gewoon de standaart layout.
Maar bij mij moet die dus ook dezelfde layout hebben.
Hoe laat ik dat doen??
[email protected] schreef op 09.01.2009 14:50:
Precies wat ik zeg, dat kun je dus alleen bereiken als je het met PHP oplost.Alleen (miss lullig) als ik op een andere link klik, heeft die gewoon de standaart layout.
Zie de uitleg in mijn vorige post...
Oke, dus als ik het goed begrijp kan dit weg:
[linebreak]// Check[linebreak]echo $_SESSION[style] . is geselecteerd.[linebreak][linebreak]
deze 'style' bestaat nog niet. dus overal waar 'style' staat moet een .css te komen staan?? dus iets van default.css.
en ik kan dan gewoon layers gebruiken in mijn pagina??
Ik moet je nog wel vertellen :$ dat ik niets verder weet van PHP
Maar opmaken in design kan ook toch gewoon??
[email protected] schreef op 09.01.2009 15:10:
Nee, dat heb je verkeerd. deze 'style' bestaat nog niet. dus overal waar 'style' staat moet een .css te komen staan?? dus iets van default.css.
Zoals ik al zei, probeer eerst goed te begrijpen wat het scriptje nu precies doet, voordat je het probeert toe te passen. Kopieer het dus eens naar een nieuw PHP bestandje en voer het eens uit. Speel ermee en zie wat er gebeurt. Kijk dan nog eens goed naar het scriptje om te zien of je begrijpt wat er gebeurt, verander desnoods wat aan de code om te zien wat dat oplevert.
Waar je uiteindelijk op uit zult komen is dat je in je HTML zoiets krijgt:
Bovenstaande is natuurlijk de regel waarmee je je stylesheet laadt.
ps.
Quote:
PHP BeginnershandleidingIk moet je nog wel vertellen :$ dat ik niets verder weet van PHP
Wellicht dat je hier dan iets aan hebt...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
terug van weggeweest, ik heb me beetje lopen verdiepen in PHP
Dus ik hoop dat ik de code ben gaan begrijpen alleen nu wilt hij nog steeds niet mijn css laden.
Hieronder mijn voledige code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="<?php echo $_SESSION['style']; ?>" rel="stylesheet" type="text/css"/> Hier laadt hij zien wat gekozen is en dat onthouden.
</head>
<body>
<?php
session_start();
$aStyles = array( //dit zijn de css waar je uit kunt kiezen
'1' => 'css1.css',
'2' => 'css2.css',
'3' => 'css3.css'
);
if(isset($_GET['style']) && in_array($_GET['style'], array_keys($aStyles))) //Hier laadt hij de css vanuit het menu genaamd style
{
$_SESSION['style'] = $aStyles[$_GET['style']]; //session geeft aan dat de browser dit moet onthouden bij de volgende pagina's dus de style
}
else
{
if(!isset($_SESSION['style']))// moet nog steeds onthouden worden
{
$_SESSION['style'] = 'css1.css'; //dit is de css die standaart wordt geladen
}
}
?>
<form method="get" action=""> Moet hier niet wat staan??
<select name="style">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="submit" value="Verander style" />
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="<?php echo $_SESSION['style']; ?>" rel="stylesheet" type="text/css"/> Hier laadt hij zien wat gekozen is en dat onthouden.
</head>
<body>
<?php
session_start();
$aStyles = array( //dit zijn de css waar je uit kunt kiezen
'1' => 'css1.css',
'2' => 'css2.css',
'3' => 'css3.css'
);
if(isset($_GET['style']) && in_array($_GET['style'], array_keys($aStyles))) //Hier laadt hij de css vanuit het menu genaamd style
{
$_SESSION['style'] = $aStyles[$_GET['style']]; //session geeft aan dat de browser dit moet onthouden bij de volgende pagina's dus de style
}
else
{
if(!isset($_SESSION['style']))// moet nog steeds onthouden worden
{
$_SESSION['style'] = 'css1.css'; //dit is de css die standaart wordt geladen
}
}
?>
<form method="get" action=""> Moet hier niet wat staan??
<select name="style">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="submit" value="Verander style" />
</form>
</body>
</html>
Ik heb er zelf nog wat bij gezet om te kijken of ik het begrijp.
Zouden jullie dat na kunnen kijkenn voor me? En mij verbeteren als ik het fout heb gedaan?
Alvast bedankt. Steven
Plaats allereerst dus de session_start() aan het begin van je script. Zet verder deze regels ook aan het begin van je script:
Dan worden alle (mogelijke) fouten weergegeven.
Wat versta jij onder script? Is dat vanaf
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
tot het afsluiten van de html?
of vanaf het eerste
Quote:
Vanaf begin tot eind, dus ook de HTML meegerekend ;-)Wat versta jij onder script?
Hij pakt nu mijn css en ook de rest :-D
Ik ga nu even kijken of ik er een aantal divs in kan zetten en hoe die daar op reageert.
Moet ik nu in al mijn pagina's
Neerzetten of laat hij dat nu met alle bestanden zien die uit dezelfde directory worden gehaald?
Ja, zeker weten. Op elke pagina waar je sessievariabelen wilt gebruiken, zul je session_start() moeten aanroepen...
Overal waar ik dezelfde sessie wil hebben waar ik mee begonnen ben.
Moet ik starten met
Zodat alle pagina's die ik aanklik dezelfde stijl houden.
Correct?
Klopt! :)