Checkbox-Werte in Cookies speichern
Ellen
- php
0 hotti0 jobo0 Thomas Luethi- javascript
0 hotti
Hallo,
nach einer langen Suche wende ich mich jetzt an Euch. Mein Problem ist leicht zu erklären, eine Lösung (für mich) schwer zu finden. Also:
Ich habe eine Auswahl mit Checkboxen. Letzten Endes möchte ich nichts anderes, als dass die Auswahl beim nächsten Mal automatisch wieder getroffen wird und der Besucher nicht ein weiteres Mal die Häkchen setzen muss. Damit meine ich:
User kommt auf die Seite, sieht
[ ] Thema 1
[ ] Thema 2
[ ] Thema 3
setzt die Häkchen
[x] Thema 1
[ ] Thema 2
[x] Thema 3
Kommt beim nächsten Mal auf die Seite un da sieht er
[x] Thema 1
[ ] Thema 2
[x] Thema 3
und nicht
[ ] Thema 1
[ ] Thema 2
[ ] Thema 3
es sei denn, er hat seine Cookies gelöscht oder nicht aktiviert.
Ich hoffe, dass das verständlich erklärt war.
Dass das Problem mit Cookies zu lösen ist und welche negativen Dinge dabei miteinspielen, habe ich bei meiner Suche schon gelesen. Dennoch möchte ich das umsetzen.
Mein Problem besteht schon darin, dass ich nicht weiß, ob ich Java Script oder Php (oder beides) benötige. Zum anderen fehlt mir ein Ansatz, sozusagen der erste Schritt. Ich habe mir zwar solche Dinge hier http://tut.php-q.net/de/cookies.html durchgelesen, aber so richtig schlau bin ich aus den ganzen Infos noch nicht geworden.
Für Hilfe wäre ich sehr dankbar!
Danke und liebe Grüße
hi,
Mein Problem besteht schon darin, dass ich nicht weiß, ob ich Java Script oder Php (oder beides) benötige. Zum anderen fehlt mir ein Ansatz,
: Was User ankreuzt an Checkboxen muss erstmal zum Server. Das kann mit einem Submit des Formulars erfolgen oder mit Ajax(JavaScript).
Am Server brauchst Du dann PHP, dort wertest Du den Request aus, das kann GET oder POST sein, je nachdem wie Du das programmierst.
Dann denke Dir eine Datenstruktur aus, wie Du die übermittelten Werte aus $_GET oder $_POST (Checkboxen checked) in einen Scalar ablegst, das kommt dann in den Cookie als value.
Diesen Cookie sendest Du in der Response im Header, der Browser speichert den dann lokal ab (oder auch nicht, rechne damit).
Wenn dann der Benutzer die Seite wieder aufruft, wird der Cookie im Request-Header mitgesendet, dazu wird serverseitig eine Variable gesetzt, die Dein PHP Script auslesen und die Checkboxn entsprechend ankreuzen kann.
Das ist nicht nur der Ansatz, das ist im Prinzip schon alles ;-)
Hotti
Hallo,
set_cookie(), php.
du speicherst ein array in einem cookie und liest es wieder aus ($_COOKIES);
Entsprechend baust du dann deine checkboxen oder was auch immer.
Versuch es doch erstmal mit einem <input name="myCookieVar" type="text" value="<?php echo $_COOKIES["myCookieVar"?>
ungetesetet. Fehlt natürlich auch noch das Setzen des Cookies.
Gruß
jobo
Hallo,
Ich denke, Du könntest die Cookies auch mit JavaScript setzen.
Ein guter Anfang zum Lesen wäre diese Seite:
http://de.selfhtml.org/javascript/beispiele/seitenbesuche.htm
Auch zahlreiche JavaScript-basierten Style Switcher, die eine
Zeitlang recht in Mode waren, speichern das bevorzugte Stylesheet
in einem Cookie (was ja in eine ähnliche Richtung geht, also eine
nette Bequemlichkeits-Funktion für den Benutzer, aber nichts
lebenswichtiges.)
Du kannst auch schon dann, wenn der Benutzer das Kästchen ankreuzt
bzw. un-ankreuzt (http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onchange@title=onChange), das Cookie setzen. Interaktion mit
dem Server ist also überhaupt nicht notwendig.
Aber natürlich setzt das voraus, dass der Benutzer JS aktiviert hat.
Wenn Du lieb sein willst und auch die Benutzer mit abgeschaltetem JS
glücklich machen willst, kommst Du nicht um eine serverseitige Lösung
herum. Und ob Du dann den doppelten Aufand betreiben willst für ein
"nice to have" feature (also JS + PHP), wage ich zu bezweifeln.
Darum heisst die Lösung wohl doch eher: PHP (z.B. mit Sessions,
aber es geht auch ohne). Sobald Du es mit Benutzerregistrierung
und Datenbanken zu tun hast, brauchst Du sowieso eine Lösung mit
PHP oder einer vergleichbaren serverseitigen Technologie.
mfg Thomas
moin,
herum. Und ob Du dann den doppelten Aufand betreiben willst für ein
"nice to have" feature (also JS + PHP), wage ich zu bezweifeln.
Naja. Du weißt nie, was für ein umfangreiches Projekt hinter einer einfachen Frage stecken kann ;-)
Viele Grüße,
Horst Klugschweitzer