Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]problem z rozwijanym menu
Forum PHP.pl > Forum > Przedszkole
ifrit
Witam

mam następujący problem, rozwijane menu które w pliku html działa bez problemu w pliku php przestało się rozwijać. Tzn. jest tylko pierwszy(podstawowy) poziom menu, reszta się nie wyświetla. Kombinowałem z podpięciem w inny sposób bibliotek jquery ale bez skutku, jestem zupełnie "zielony" w tym temacie. Pogooglowałem trochę i nic nie znalazłem. Bardzo proszę o jakieś wskazówki. Załączam kod pliku php, plik styli i js pomijam bo jak już wspominałem pod html działa.


  1. <?php $add_site = true; include "include/fc.php"; ?>
  2. <?php include "include/tm.php"; ?>
  3. <link href="css/style.css" rel="stylesheet" type="text/css">
  4. <head><title><?php echo Title($_GET['ids']); ?></title><head>
  5. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  6. <script type="text/javascript" src="menu.js"></script>
  7. <script type="text/javascript">
  8.  
  9. ddsmoothmenu.init({
  10. mainmenuid: "smoothmenu1",
  11. orientation: 'h',
  12. classname: 'ddsmoothmenu',
  13. //customtheme: ["#1c5a80", "#18374a"],
  14. contentsource: "markup"
  15. })
  16.  
  17. ddsmoothmenu.init({
  18. mainmenuid: "smoothmenu2",
  19. orientation: 'v',
  20. classname: 'ddsmoothmenu-v',
  21. //customtheme: ["#804000", "#482400"],
  22. contentsource: "markup"
  23. })
  24.  
  25. </script></head>
  26. <body>
  27.  
  28. <?php include "include/naglowek.php"; ?>
  29.  
  30. <div id="smoothmenu1" class="ddsmoothmenu">
  31. <ul>
  32. <li><a href="#">Item 1</a></li>
  33. <li><a href="#">Folder 0</a>
  34. <ul>
  35. <li><a href="#">Sub Item 1.1</a></li>
  36. <li><a href="#">Sub Item 1.2</a></li>
  37. </ul>
  38. </li>
  39. <li><a href="#">Folder 1</a>
  40. <ul>
  41. <li><a href="#">Sub Item 1.1</a></li>
  42. <li><a href="#">Sub Item 1.2</a></li>
  43. </ul>
  44. </li>
  45. <li><a href="#">Item 3</a></li>
  46. <li><a href="#">Folder 2</a>
  47. <ul>
  48. <li><a href="#">Sub Item 2.1</a></li>
  49. <li><a href="#">Folder 2.1</a>
  50. <ul>
  51. <li><a href="#">Sub Item 2.1.1</a></li>
  52. <li><a href="#">Sub Item 2.1.2</a></li>
  53. <li><a href="#">Folder 3.1.1</a>
  54. <ul>
  55. <li><a href="#">Sub Item 3.1.1.1</a></li>
  56. <li><a href="#">Sub Item 3.1.1.2</a></li>
  57. </ul>
  58. </li>
  59. <li><a href="#">Sub Item 2.1.4</a></li>
  60. </ul>
  61. </li>
  62. </ul>
  63. </li>
  64. <li><a href="#">Item 4</a></li>
  65. </ul>
  66.  
  67.  
  68. <?php include "include/stopka.php"; ?>
  69.  
  70. </body>
  71. </html>
  72.  
markonix
W jquery bardzo prosto ten efekt zaimplementujesz.
Wystarczy użyć slideToggle funkcji rozwijającej i na odwrót (samo wykrywa czy element jest lub go nie ma).
Do tego funkcja next która sprawi że funkcja slideToggle zadziała na "następnym" elemencie <ul> (nie trzeba na sztywno nadawać name czy id dla każdego submenu).

Spróbuj coś napisać samemu. To praktycznie z 3 linijki kodu.
ifrit
dzięki za odpowiedz.
Problem w tym, że to są moje początki w tym temacie i nie wiem jak sie za to zabrać sciana.gif Mógłbyś podać przykład sposobu który opisujesz? Czy trzeba jakoś specjalnie implementować jquery w php?
markonix
jQuery działa po stronie przeglądarki więc jest silniej związany z HTMLem.

Bibliotekę jQuery nie trzeba instalować, wystarczy zaincludować kodem
Kod
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

(tu includujesz z serwerów Googla starą wersje, ściągnij na FTP najnowszą (zminimalizowaną)).

Potem po prostu pooglądaj przykłady:
http://api.jquery.com/slideToggle/
Demo z przyciskiem (rozwija akapit i zwija).
Teraz wyobraź sobie działanie analogiczne na menu - zamiast buttona i akapitu jak w przykładzie to u Ciebie kliknięcie w akapit (nagłówek menu) i rozwinięcie listy (<ul>). Dla jQuery nie ma znaczenia, można odwoływać się do divów, akapitów, linków itd.

Spróbuj najpierw coś takiego napisać. Tam jest przykład który rozwinie wszystkie akapity, a Ty chcesz tylko "następny" czyli funkcja next() ale na początek spróbuj pierwszy fragment napisać, a potem pomogę z tym next.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.