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
kamil4u
post
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Tym razem już nie analizowałem całego kodu, ale i tak zauważyłem kilka błędów:
- w funkcji show masz : setCookie('test',element) ,ale nie ma zmiennej "element", tylko "id"
- nie widzę u Ciebie funkcji menu, a w kodzie masz: menu('m0');
- nadpisujesz ciasteczko
- ogólnie trochę chaotyczny kod (IMG:style_emoticons/default/smile.gif)

Rozumiem, że chcesz jednym linkiem otwierać kilka elementów, zrób tak:
- użyj atrybutu klasy(class) lub nazwy(name)
- użyj jednej funkcji, która pokazuje wszystkie pola(razem z zapisem do ciasteczka i ukrywania pozostałych pól)
- do powyższej funkcji jako argument podawaj nazwę klasy, nazwy, a nie tak jak dotychczas id
- w ciastku zapisuj nazwę klasy,nazwy
- kod do pokazywania(tyko pokazywania, bez obsługi ciasteczek i ukrywania innych pól) może wyglądać tak:
Kod
function show(name){
var i,els, el;
for(i=0,els=document.getElementsByName(name); el=els[i++]){
  el.style.display = 'block';
}
}


Ew. możesz zapisać w ciasteczku tablicę: http://forum.4programmers.net/Webmastering...ablic_w_cookies , ale nie polecałbym Tobie tego.
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: 12.10.2025 - 06:58