Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Tworzenie ciasteczek, Pokaż/ukryj
piernik123
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 26.08.2010

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


Witam. Chciałbym wiedzieć, czy jest możliwość aby do poniższego kodu opierającego się na zasadzie pokaż/ukryj byłaby jakaś możliwość doczepienia ciasteczek, które umożliwią po odświeżeniu czy nawet wyłączeniu strony zapamiętanie ostatniego wyboru podczas ponownego korzystania z niej.
  1. <html>
  2.  
  3. <head>
  4.  
  5. <style type="text/css">
  6. div.nazwa p { display: none; }
  7. div.nazwa p1 { display: inline; }
  8.  
  9. <script language="javascript" type="text/javascript">
  10. <!--
  11. function nazwa(element) {
  12. i = 0;
  13. while (e = document.getElementById("m" + i++)) {
  14. e.style.display = "none";
  15. }
  16. document.getElementById(element).style.display = "inline";
  17. }
  18. menu('m0');
  19. // -->
  20.  
  21. </head>
  22.  
  23. <body>
  24.  
  25. <div class="nazwa">
  26. <p id="m0">Tekst2 po kliknięciu w odnośnik "tekst 2"</p>
  27. <p1 id="m1">
  28. Tekst1 po kliknięciu w odnośnik "tekst 1"
  29. </p1>
  30. </div>
  31.  
  32. <a href="#" onclick="nazwa('m0'); return n;">tekst1</a>
  33. <a href="#" onclick="nazwa('m1'); return false;">tekst2</a>
  34.  
  35.  
  36. </body> </html>

Zapytam też czy jest jakaś możliwość uzyskania tego efektu bez korzystania z ciasteczek? Jest to dla mnie bardzo skomplikowane, a poza tym nie wszystkie przeglądarki obsługują cookies.
Proszę o pomoc. Pozdrawiam.

Ten post edytował piernik123 2.04.2011, 11:17:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
piernik123
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 26.08.2010

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


Już mniejsza o kod, bo samemu i tak nic lepszego nie uda mi się napisać (IMG:style_emoticons/default/smile.gif) Jak radziłeś w ciastku zapisuję nazwę klasy: setCookie('test2','p1/p2',element) - nie wiem tylko jak teraz je odczytać. Chodzi o te ostatnie linijki w JS:
  1. onload = function(){
  2. if(getCookie('test'))
  3. tabeleczki(getCookie('test'));
  4. if(getCookie('test2'))
  5. tabeleczki(getCookie('test2'));
  6. }

Sam kod wygląda na razie tak:
  1. <html>
  2.  
  3. <head>
  4.  
  5. <style type="text/css">
  6. div.tabeleczki p.p2 { display: none; }
  7. div.tabeleczki p.p1 { display: inline; }
  8.  
  9.  
  10. <script language="javascript" type="text/javascript">
  11. function setCookie(name, value, expires, path, domain, secure){
  12. document.cookie=name+'='+escape(value||'')+
  13. (expires?';expires='+new Date(+new Date()+expires*864e5).toGMTString():'')+
  14. (path?';path='+path:'')+
  15. (domain?';domain='+domain:'')+
  16. (secure?';secure':'');
  17. }
  18.  
  19. function getCookie(N){
  20. if(N=(new RegExp(';\\s*'+(''+N).replace(/([()[\]{}\-.*+?^$|\/\\])/g,'\\$1')+'=([^;]*)')).exec(';'+document.cookie+';'))return N[1]
  21. }
  22. function tabeleczki(element) {
  23. i = 0;
  24. while (e = document.getElementById("m" + i++)) {
  25. e.style.display = "none";
  26. }
  27. setCookie('test','p1',element)
  28. document.getElementById(element).style.display = "inline";
  29. }
  30. tabeleczki('m0');
  31. function show(id)
  32. {
  33. setCookie('test2','p2',id)
  34. document.getElementById(id).style.display = 'inline';
  35. }
  36. onload = function(){
  37. if(getCookie('test'))
  38. tabeleczki(getCookie('test'));
  39. if(getCookie('test2'))
  40. tabeleczki(getCookie('test2'));
  41. }
  42.  
  43. </head>
  44.  
  45. <body>
  46.  
  47. <div class="tabeleczki">
  48. <p id="m0" class="p2">Tekst2 po kliknięciu w odnośnik "tekst 2"</p>
  49. <p id="m3" class="p2">Tekst4 po kliknięciu w odnośnik "tekst 4"</p>
  50. <p id="m1" class="p1">
  51. Tekst1 po kliknięciu w odnośnik "tekst 1"
  52. </p>
  53. <p id="m2" class="p1">
  54. Tekst1 po kliknięciu w odnośnik "tekst 3"
  55. </p>
  56. </div>
  57.  
  58. <a href="#" onclick="tabeleczki('m0');tabeleczki('m3');show('m0');show('m3'); return n;">tekst1</a>
  59. <a href="#" onclick="tabeleczki('m1');tabeleczki('m2');show('m1');show('m2'); return false;">tekst2</a>
  60.  
  61.  
  62. </body> </html>

Proszę o jeszcze chwilę cierpliwości do mnie, bo czuję że jestem na prawdę blisko, ale bez Waszej pomocy nie uda mi się tego skończyć (IMG: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 - 10:23