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.
deze 'style' bestaat nog niet. dus overal waar 'style' staat moet een .css te komen staan?? dus iets van default.css.
Nee, dat heb je verkeerd.
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:
Hallo,
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:
<!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>
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?
Dit script zal een 'headers already sent' foutmelding opleveren. Voor de session_start() van regel 10 heb je namelijk al output naar de browser verzonden (de HTML) en dat is niet toegestaan.
Plaats allereerst dus de session_start() aan het begin van je script. Zet verder deze regels ook aan het begin van je script:
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>
Dan worden alle (mogelijke) fouten weergegeven.
Ik zelf zou zeggen vanaf het eerste <? teken. Bij mij dus vanaf regel 6
Maar omdat ik daar wat geplaatst moet worden zou ik hem op de plaats zetten waar hij nu staat. Wat dus niet goed is.