Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Panel w JS + ciasteczka, zapamiętywanie konfiguracji użytkownika
onlyX
post
Post #1





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Grajewo

Ostrzeżenie: (0%)
-----


Mam panel-tabelę z chowanymi elementami za pomocą JS:
  1. <script type="text/javascript">
  2. function showHidden(obj){
  3. obj = document.getElementById(obj);
  4. obj.style.display == 'none' ? obj.style.display = '' : obj.style.display = 'none';
  5. }
  6. function over(obj){
  7. obj = document.getElementById(obj);
  8. obj.style.backgroundColor = '#CCCCCC';
  9. }
  10. function out(obj){
  11. obj = document.getElementById(obj);
  12. obj.style.backgroundColor = '#454545';
  13. }
  14. </head>
  15. <table width="210" cellspacing="0" cellpadding="0" border="0">
  16.  
  17. <tr><td id="pan1" class="panel_nav" onmouseover="over('pan1');" onmouseout="out('pan1');" onclick="showHidden('show1');">&raquo; Nagłówek</td></tr>
  18. <tr id="show1" style="display:none;"><td class="panel_con">
  19. Zawartość</td></tr>
  20.  
  21. <tr><td class="panel_nav" onclick="showHidden('show2');">&raquo; Nagłówek</td></tr>
  22. <tr id="show2" style="display:none;"><td class="panel_con">
  23. Zawartość
  24. </td></tr>
  25.  
  26. <tr><td class="panel_nav" onclick="showHidden('show3');">&raquo; Nagłówek</td></tr>
  27. <tr id="show3" style="display:none;"><td class="panel_con">
  28. Zawartośc</td></tr>


Chciałbym rozbudować go o możliwość zapamiętywania wyborów uzytkownika (które panele zamknięte, a które otwarte). Z tym, że nie wiem jak do tego się zabrać.
Chciałbym, żeby cała konfiguracja była przechowywana w jednym cistku (może w tablicy) i w przypadku nieznalezienia ciastka, uzywana była domyślna konfiguracja. Może będzie całkowicie przebudować kod (atrybuty id, style i funkcje js). Moja wiedza o JS jest narazie zbyt uboga, żeby zrobic to samemu. Może moglibyście wskazać mi jakies przykłady, artykuły, bądź poddać pomysły.

Z góry dziękuję za jaką kolwiek pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Draugfor
post
Post #2





Grupa: Zarejestrowani
Postów: 131
Pomógł: 0
Dołączył: 13.07.2003
Skąd: Torun/Poznan

Ostrzeżenie: (0%)
-----


No dobra!

Bedziesz potrzebowal kilku funkcji do obslugi cookie (zapis, odczyt) - najlepiej sciagnij sobie takie funkcje z jakiejs strony ze skryptami, bo szkoda czasu, zeby to pisac samemu (no, chyba ze chcesz dobrze poznac JS).

Przydalaby sie jakas tablica, np.
Kod
//Ile jest tych pojawiajajacych sie i znikajacych paneli:
var showCount=3;
//Tablica z danymi (czy panel otwarty):
var showStatus=new Array(showCount);
//np. showStatus[0]=1 - panel pierwszy otwarty.
//showStatus[1]=1 - panel drugi zamkniety.


O ile mi wiadomo, to w cookie nie mozna tak po prostu zapisac obiektu czy tablicy, wiec potrzebna bedzie funkcja do konwersji naszej tablicy showStatus w ciag znakow i na odwrot.
Otrzymany ciag znakow bedzie zapisywany z cookie jako ustawienia uzytkownika np. przy zamykaniu strony
  1. <body onunload="saveShow()">

a przy otwieraniu wczytany i skonwertowany do tablicy showStatus, o czym nizej.

No i do tego 2 funkcje, ktore odczytaja wartosci display wszystkich paneli i zapisza je do tablicy showStatus (to pierwsza funkcja) oraz odczytaja wartosci z tabeli showStatus i wedlug nich poustawiaja styl display wszystkich paneli (to druga).

Pewnie nie wszystko jest jasne, wiec smialo pytaj. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 11:32