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%)
-----


Kamil jesteś świetny. Próbowałem jednak dodać ten kod na stronę i przez błędy po wywołaniu funkcji tekst znika. Musiałem go trochę poprawić i znów się pogubiłem:
  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. <!--
  12. function tabeleczki(element) {
  13. i = 0;
  14. while (e = document.getElementById("m" + i++)) {
  15. e.style.display = "none";
  16. }
  17. document.getElementById(element).style.display = "inline";
  18. }
  19. menu('m0');
  20.  
  21. function show(id)
  22. {
  23. document.getElementById(id).style.display = 'inline';
  24. }
  25.  
  26. // -->
  27.  
  28. </head>
  29.  
  30. <body>
  31.  
  32. <div class="tabeleczki">
  33. <p id="m0" class="p2">Tekst2 po kliknięciu w odnośnik "tekst 2"</p>
  34. <p id="m3" class="p2">Tekst4 po kliknięciu w odnośnik "tekst 4"</p>
  35. <p id="m1" class="p1">
  36. Tekst1 po kliknięciu w odnośnik "tekst 1"
  37. </p>
  38. <p id="m2" class="p1">
  39. Tekst1 po kliknięciu w odnośnik "tekst 3"
  40. </p>
  41. </div>
  42.  
  43. <a href="#" onclick="tabeleczki('m0');tabeleczki('m3');show('m0');show('m3'); return n;">tekst1</a>
  44. <a href="#" onclick="tabeleczki('m1');tabeleczki('m2');show('m1');show('m2'); return false;">tekst2</a>
  45.  
  46.  
  47. </body> </html>

Po dodaniu funkcji show wszystko działa (nazwę funkcji ukrywającej tekst nazwałem tabeleczki, ponieważ tak też jest na stronie;)) ale jak teraz dołożyć do tego cookies?
  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. <!--
  12. function setCookie(name, value, expires, path, domain, secure){
  13. document.cookie=name+'='+escape(value||'')+
  14. (expires?';expires='+new Date(+new Date()+expires*864e5).toGMTString():'')+
  15. (path?';path='+path:'')+
  16. (domain?';domain='+domain:'')+
  17. (secure?';secure':'');
  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',element)
  28. document.getElementById(element).style.display = "inline";
  29. }
  30. menu('m0');
  31.  
  32. function show(id)
  33. {
  34. setCookie('test',element)
  35. document.getElementById(id).style.display = 'inline';
  36. }
  37. onload = function(){
  38. if(getCookie('test'))
  39. tabeleczki(getCookie('test'));
  40. }
  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>

Bo teraz coś namieszałem i kod znów zaczyna błędnie działać

Ten post edytował piernik123 3.04.2011, 09:09:57
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: 16.10.2025 - 21:51