Sponsor-Board.de

Normale Version: JavaScript Hilfe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen,

könnte mir bitte jemand erklären wie ich per Formular eine Hintergrundfarbe setze, welche auf jeder Seite sichtbar ist. Das Formular habe ich schon:

<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, [Link: Registrierung erforderlich]">
<title></title>
<SCRIPT LANGUAGE = "JavaScript">
function setColor () {
var choice;
choice = document.colorForm.color.selectedIndex;
switch(choice) {
case 0: document.bgColor = "FF0000"; break;
case 1: document.bgColor = "00FF00"; break;
case 2: document.bgColor = "0000FF"; break;
case 3: document.bgColor = "FFFFFF"; break;
case 4: document.bgColor = "FFFF00"; break;
case 5: document.bgColor = "FF00FF"; break;
}
}

</SCRIPT>
</head>
<body>

<H1> Bitte eine Hintergrundfarbe auswählen: </H1>
<FORM NAME="colorForm">
<SELECT NAME="color" onChange=setColor()>
<OPTION VALUE="red">rot</option>
<OPTION VALUE="green">gr&uuml;n</option>
<OPTION VALUE="blue">blau</option>
<OPTION VALUE="white">wei&szlig;</option>
<OPTION VALUE="yellow">gelb</option>
<OPTION VALUE="purple">lila</option>
</SELECT>

Aber ich weiss nicht, wie ich diese als Cokkie speichere und auf einer anderen Seite auslese, um Hilfe wäre ich sehr dankbar.

Mfg,
Sebastian.
wenn das für jeden Benutzer einzelnt gelten soll, dann z.B. sowas: [Link: Registrierung erforderlich]

Edit

Auf Wunsch nochmal n Beispiel:

Demo (wenn du das Browserfenster schließt und erneut öffnest, sollte die zuletzt ausgewählte Farbe immernoch da sein):
[Link: Registrierung erforderlich]

Genutzt hab ich jetzt das oben stehende jQuery Plugin, dieses musst du also runterladen und einbinden, gilt auch für jQuery (keine alte Version, da sonst [Link: Registrierung erforderlich] nicht unterstützt wird, könnte man aber auch mit [Link: Registrierung erforderlich] ersetzen)
Hm würde vorschlagen, da es ja nur was simples sein muss (nehm ich mal an), dass du dich weniger mit Javascript und mehr mit PHP befasst, da sogesehen sämtliche Befehle von Javascript in PHP existieren (unter google suchen Befehl Javascript in PHP, oder ähnlich)

In PHP musst du dann auf den Seiten einfach mit SESSION arbeiten, was es sehr leicht macht, einen simplen Cookie zu erstellen und diesen mal flux solange beizubehalten, wie du willst. Die Cookies werden je nach Browser einstellungen gelöscht oder beibehalten.

Falls du sonst noch Fragen hast, einfach per PN fragen.

P.S.: Kann dir auch ne kleine Vorlage geben wegen den SESSIONs

VarmintLP schrieb:
Hm würde vorschlagen, da es ja nur was simples sein muss (nehm ich mal an), dass du dich weniger mit Javascript und mehr mit PHP befasst, da sogesehen sämtliche Befehle von Javascript in PHP existieren (unter google suchen Befehl Javascript in PHP, oder ähnlich)

In PHP musst du dann auf den Seiten einfach mit SESSION arbeiten, was es sehr leicht macht, einen simplen Cookie zu erstellen und diesen mal flux solange beizubehalten, wie du willst. Die Cookies werden je nach Browser einstellungen gelöscht oder beibehalten.
[...]


Du kannst Javascript doch nicht mit PHP vergleichen - PHP wird serverseitig ausgeführt, Javascript hingegen clientseitig.

Auch ließt sich das bei dir so, dass Sessions und Cookies das gleiche sind - was natürlich nicht so ist.

Wenn man das ganze nur mit PHP realisieren würde, müsse man die ganze Seite neu laden, um die Änderung zu sehen - was aber nicht nötig ist.

Was man höchstens machen könnte wäre ne AJAX Abfrage mit JS erstellen, die dann ein PHP Script, welches dann die Info's speichert.

Weiss den niemanden, wie ich bei dem Script die Farbe über den ganzen Hintergrund bekomme?

PHP-Code:
<!DOCTYPE html
<
html
<
head
<
meta charset="UTF-8" /> 
<
title></title>
<
style type="text/css">
form {
    
padding30px;
}
</
style>
<
script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://dynao.de/jquery.session.js"></script>
<script>
jQuery(document.bgColor).ready(function($) {
    
    $('#form').css('background', $.session.get('color'));
    $('#form select option[value="' + $.session.get('color') + '"]').prop('selected', true);
    
    $('#form select').change(function() {
        
        color = $(this).val();
       
        $('#form').css('background', color);
        
        $.session.set('color', color);
        
    });
    
});
</script>
</head> 
<body>
<h1>Hintergrundfarbe</h1>

<form name="colorForm" id="form">
    
    <select name="color">
        <option value="white">Weiß</option>
        <option value="red">Rot</option>
        <option value="green">Grün</option>
        <option value="blue">Blau</option>
        <option value="yellow">Gelb</option>
        <option value="purple">Lila</option>
    </select>
</body>
</html> 


Hoffentlich weiss jemand Rat!

Mfg,
Sebastian.

Referenz-URLs