Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ukrywanie div, ukrycie mam a chce zapamiętanie wartości
mateuszpi
post
Post #1





Grupa: Zarejestrowani
Postów: 140
Pomógł: 0
Dołączył: 11.09.2006
Skąd: Jaworzno

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


Witam
mam kod do ukrycia pewnego div-a (swoją drogą znaleziony u Was)
wszystko działa pięknie ale niestety po przejściu na inną stronę i powrocie to wszystko wraca do stanu początkowego a ja potrzebuje aby to co zostało ustawione było zapamiętane. zapewne trzeba użyć ciasteczek. prosze o pomoc i modyfikacje kodu:
  1. <script type="text/javascript">
  2. <!--
  3. function pokazUkryj(id)
  4. {
  5. document.getElementById(id).style.display = (document.getElementById(id).style.display == "none") ? "block" : "none";
  6. }
  7. -->
  8.  
  9. <a href="javascript:pokazUkryj('menu_1')">Zwiń/Rozwiń</a>
  10. <div id="menu_1" style="display:none"><!--Powinno być ukryte...-->
  11. </div>


z góry dzieki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Fixer
post
Post #2





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 24.10.2004
Skąd: TG

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


Przedstawiam gotowiec...

(IMG:http://img218.imageshack.us/img218/755/menuug7.jpg)

Zalety:
-zapisywanie/odczytywanie statusu przez cookie
-łatwa modyfikacja wyglądu stylem css
-szybka integracja ze stroną
-kompatybilność z przeglądarkami IE, FF

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  4.  
  5. <title>Show/Hide + cookie</title>
  6.  
  7. <style type="text/css">
  8. <!--
  9. body,td,th {
  10. font-family: Verdana, Arial, Helvetica, sans-serif;
  11. color: #000000;
  12. }
  13. body {
  14. background-color: #FFFFFF;
  15. margin-left: 10px;
  16. margin-top: 10px;
  17. margin-right: 10px;
  18. margin-bottom: 10px;
  19. }
  20. a {
  21. font-family: Verdana, Arial, Helvetica, sans-serif;
  22. font-size: 12px;
  23. color: #FFFFFF;
  24. }
  25. a:link {
  26. text-decoration: none;
  27. }
  28. a:visited {
  29. text-decoration: none;
  30. color: #FFFFFF;
  31. }
  32. a:hover {
  33. text-decoration: none;
  34. color: #FFFFFF;
  35. }
  36. a:active {
  37. text-decoration: none;
  38. color: #FFFFFF;
  39. }
  40. .menu_naglowek {
  41. background-color: #820000;
  42.  
  43. PADDING-LEFT: 8px;
  44. PADDING-RIGHT: 8px;
  45. PADDING-TOP: 2px;
  46. PADDING-BOTTOM: 2px;
  47.  
  48. FONT-FAMILY: Verdana, Tahoma;
  49. text-align: center;
  50. FONT-SIZE: 10px;
  51. FONT-WEIGHT: bold;
  52. color: #FFFFFF;
  53. height: 18px;
  54. cursor: pointer;
  55. }
  56.  
  57. .menu_tresc {
  58. background-color: #FFFFFF;
  59.  
  60. BORDER-LEFT: 1px solid #820000;
  61. BORDER-RIGHT: 1px solid #820000;
  62. BORDER-TOP: 0px solid;
  63. BORDER-BOTTOM: 1px solid #820000;
  64.  
  65. PADDING-LEFT: 8px;
  66. PADDING-RIGHT: 8px;
  67. PADDING-TOP: 5px;
  68. PADDING-BOTTOM: 5px;
  69.  
  70. FONT-FAMILY: Verdana, Tahoma;
  71. FONT-SIZE: 10px;
  72. COLOR: #000000;
  73. }
  74. -->
  75.  
  76. <script language="javascript">
  77. function init()
  78. {
  79. var cookie = getCookie('collapse_obj');
  80. if(cookie)
  81. {
  82. var values = cookie.split(',');
  83.  
  84. for(var i = 0; i < values.length; i++)
  85. {
  86. var itm = getItem(values[i]);
  87.  
  88. if(itm)
  89. itm.style.display = 'none';
  90. }
  91. }
  92. }
  93.  
  94. function makeCookie(name, value)
  95. {
  96. var cookie = name + '=' + escape(value) + ';';
  97. document.cookie = cookie;
  98. }
  99.  
  100. function getCookie(name)
  101. {
  102. if(document.cookie == '')
  103. return false;
  104.  
  105. var firstPos;
  106. var lastPos;
  107. var cookie = document.cookie;
  108.  
  109. firstPos = cookie.indexOf(name);
  110.  
  111. if(firstPos != -1)
  112. {
  113. firstPos += name.length + 1;
  114. lastPos = cookie.indexOf(';', firstPos);
  115.  
  116. if(lastPos == -1)
  117. lastPos = cookie.length;
  118.  
  119. return unescape(cookie.substring(firstPos, lastPos));
  120. }
  121.  
  122. else
  123. return false;
  124. }
  125.  
  126. function getItem(id)
  127. {
  128. var itm = false;
  129. if(document.getElementById)
  130. itm = document.getElementById(id);
  131. else if(document.all)
  132. itm = document.all[id];
  133. else if(document.layers)
  134. itm = document.layers[id];
  135.  
  136. return itm;
  137. }
  138.  
  139. function ShowHide(id)
  140. {
  141. itm = getItem(id);
  142.  
  143. if(!itm)
  144. return false;
  145.  
  146. if(itm.style.display == 'none')
  147. itm.style.display = '';
  148. else
  149. itm.style.display = 'none';
  150.  
  151. ////////////////////
  152.  
  153. cookie = getCookie('collapse_obj');
  154. values = new Array();
  155. newval = new Array();
  156. add = 1;
  157.  
  158. if(cookie)
  159. {
  160. values = cookie.split(',');
  161.  
  162. for(var i = 0; i < values.length; i++)
  163. {
  164. if(values[i] == id)
  165. add = 0;
  166. else
  167. newval[newval.length] = values[i];
  168. }
  169. }
  170.  
  171. if(add)
  172. newval[newval.length] = id;
  173.  
  174. makeCookie('collapse_obj', newval.join(','));
  175.  
  176. return false;
  177. }
  178. </script>
  179.  
  180. </head>
  181.  
  182. <body onLoad="init()">
  183.  
  184. <table width="250" border="0" cellspacing="0" cellpadding="0">
  185. <tr>
  186. <td class="menu_naglowek" onclick="javascript:ShowHide('menu_1');"><a name="menu1" id="menu1">Menu1</a></td>
  187. </tr>
  188. <tr>
  189. <td class="menu_tresc">
  190.  
  191. <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" id="menu_1">
  192. <tr>
  193. <td height="20">nazwa1</td>
  194. </tr>
  195. <tr>
  196. <td height="20">nazwa2</td>
  197. </tr>
  198. </table>
  199.  
  200. </td>
  201. </tr>
  202.  
  203. <br />
  204. <table width="250" border="0" cellspacing="0" cellpadding="0">
  205. <tr>
  206. <td class="menu_naglowek" onclick="javascript:ShowHide('menu_2');"><a name="menu2" id="menu2">Menu2</a></td>
  207. </tr>
  208. <tr>
  209. <td class="menu_tresc">
  210.  
  211. <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" id="menu_2">
  212. <tr>
  213. <td height="20">nazwa1</td>
  214. </tr>
  215. <tr>
  216. <td height="20">nazwa2</td>
  217. </tr>
  218. </table>
  219.  
  220. </td>
  221. </tr>
  222.  
  223. </body>
  224. </html>


Jeśli chcemy aby przy pierwszym otwarciu przeglądarki jakiś fragment był domyślnie ukryty to nieco modyfikujemy kod:
zamiast
  1. <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" id="menu_1">

dajemy
  1. <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" id="menu_1" style="display: none;">


Dodatkowo jak ktoś potrzebuje zastosować tutaj elemnt <DIV> zamiast id="nazwa"
to może to zrobic tak:
  1. <div id="nazwa" style="display: block;"> (zamiast block można też wpisać none dla zawartości ukrytej domyślnie)
  2. zawartość html która będzie się pokazywać/ukrywać
  3. </div>


Z uwagi na to że na JS nie znam się za bardzo dlatego mam jeszcze do was jedno pytanie, jak przerobić tą fukcję JS powyżej, żeby można było dodać kolejny parametr mówiący o tym czy box ma być domyślnie zamknięty/otwarty po pierwszym otwarciu strony?

ShowHide('menu_2', 'true'); //jak true to otwarty a jak false to domyślnie zamknięty

PS. zmiany powinny nastąpić we funkcji init() i ShowHide() i jeśli mamy parametr false to tam gdzie było none dajemy block a tam gdzie block dajemy none

Dla kogos kto siedzi w JS to będzie prosta przeróbka, pomożecie zatem?

Ten post edytował Fixer 16.05.2008, 19:37:18
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 00:03