Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Menu nawigacyjne, Może ma ktoś pomysł?
aceide
post
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 13.05.2004
Skąd: Uć.

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


Witam,
Mam problem z wymyśleniem jakiegoś dobrego sposobu na stworzenie nawigacyjnego menu, tj. np. skryptu ktory w jakis inteligentny (samymi if-ami mozna to spokojnie zrobic, ale troche zamieszania sie robi) sposob formowalby menu w zaleznosci np. od adresu. Powiedzmy ze przekazywana jest zmienna $_GET["dzial"], czyli http://adres.pl/index.php?dzial=linki

Menu prezentuje sie wtedy tak:

Dzial 1
Dzial 2
@ Linki (chodzi o oznaczenie aktualnego dzialu)
Dzial 4

Troche nietypowe te moje zmartwienia, ale moze ktos ma jakis pomysl (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
slaug
post
Post #2





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 2.05.2003
Skąd: Gdańsk

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


Nie bardzo rozumiem z czym masz problem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Jeżeli menu masz tworzone dynamicznie przez php, to można to zrobić np. tak:

  1. <?php
  2.  
  3. for ($i=0; $i<$iloscLinkow; $i++)
  4. {
  5.  if (isset($_GET[&#092;"dzial\"]) && $_GET[\"dzial\"] == $linki['dzial'])
  6.  echo '@ <a href=\"'.$_GET['dzial'].'\">'.$linki['opisDzialu'].'</a>';
  7.  else
  8.  echo '<a href=\"'.$_GET['dzial'].'\">'.$linki['opisDzialu'].'</a>';
  9. }
  10.  
  11. ?>


Oczywiście wykorzystuje tutaj if, ale raczej nie sądze aby wpływał na czytelność (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Gorzej sprawa się ma jeżeli tworzysz menu statycznie, wtedy to musisz wszędzie ify dać. Jednak statyczne menu bardzo łatwo możesz przerobić na wypisywane dynamicznie, wpisując je do takiej tablicy jakiej użyłem w przykładzie, tej $linki. Od biedy nie musi to być tablica asocjacyjna, może być zwykła dwuwymiarowa.

Jeżeli to co napisałem nie starczy do rozwiązania problemu, to napisz dokładniej jak tworzysz samo menu. Najlepiej wklej tak jak to robisz teraz, to postaram Ci ewentualnie jakoś dodatkowo pomóc.
Go to the top of the page
+Quote Post
aceide
post
Post #3





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 13.05.2004
Skąd: Uć.

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


Wiesz co.. nie bardzo znam sie na tablicach.

Robie tak:

  1. <?php
  2.  
  3. $iloscLinkow = 3;
  4.  
  5. $linki = array(
  6.     
  7.     &#092;"dzial\" =>  array(\"index\",\"linki\",\"dupa\"),
  8.     &#092;"opisDzialu\" =>  array(\"to index\",\"to linki\",\"to dupa\")
  9.     
  10. );
  11.  
  12. for ($i=0; $i<$iloscLinkow; $i++)
  13. {
  14.    if (isset($_GET[&#092;"dzial\"]) && $_GET[\"dzial\"] == $linki['dzial'])
  15.        print_r('@ <a href=\"'.$_GET['dzial'].'\">'.$linki['opisDzialu'].'</a>');
  16.    else
  17.        print_r('<a href=\"'.$_GET['dzial'].'\">'.$linki['opisDzialu'].'</a>');
  18. }
  19.  
  20. ?>


i wyswietla mi ArrayArrayArray (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

A tak gwoli scislosci - co w Twoim mniemaniu jes menu statycznym a co dynamicznym? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nie chce zeby nie bylo nieporozumien, nie czepiam sie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pzdr.

Ten post edytował aceide 10.06.2005, 22:56:22
Go to the top of the page
+Quote Post
gu35t
post
Post #4





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 15.05.2005

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


http://pl2.php.net/manual/pl/function.print-r.php
daj zwykle echo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
aceide
post
Post #5





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 13.05.2004
Skąd: Uć.

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


A od kiedy echo wyswietla elementy tablicy? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
slaug
post
Post #6





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 2.05.2003
Skąd: Gdańsk

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


Menu statyczne to takie które masz na stałe wpisane w dokumencie. Wtedy tak jak napisałem wyżej nie pozostaje ci nic innego jak przy każdym elemencie if. Dynamiczne to takie które się zmienia, wyciągane z bazy albo z pliku. Ewentualnie, można tak jak napisałem ci wyżej wrzucić statyczne do tablicy i wyświetlać tak jak napisałem wyżej. Głównie po to żeby kod uprościć.

@ aceide: element tablicy ma jakąś wartość, nie widzę problemu dla którego miałoby nie wyświetlać.

Tym razem pełny kod:

  1. <?php
  2. /* Nie pamiętam jak się robi 2 wym. tablice asoc. więc jest zwykła */
  3. $linki = array(
  4.          array('index', 'to index'),
  5.          array('linki', 'to linki'),
  6.          array('dupa', 'to dupa')
  7.        );
  8.  
  9. /* Zliczenie ilości elementów, żebyś nie musiał sam zmieniać za kazdym razem */
  10. $iloscLinkow = count($linki);
  11.  
  12. /* Sprawdzenie czy jest zmienna get, żeby nie było błędu jak ktoś ją usunie */
  13. if (isset($_GET['dzial']))
  14.     $dzial = $_GET['dzial'];
  15. else $dzial = 'index';
  16.  
  17. /* Wyświetlenie linków;) */
  18. for ($i=0; $i<$iloscLinkow; $i++)
  19. {
  20.    if ($dzial == $linki[$i][0])
  21.        echo '@ <a href=\"'.$linki[$i][0].'\">'.$linki[$i][1].'</a><br>';
  22.    else
  23.        echo '<a href=\"'.$linki[$i][0].'\">'.$linki[$i][1].'</a><br>';
  24. }
  25. ?>


Jak coś będzie nie tak to pisz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

P.S. Oczywiście edytuj sobie potem odpowiednio tego a hrefa, tak żeby się zgadzał z twoim adresem.

pozdr.
Daniel

Ten post edytował slaug 11.06.2005, 01:15:56
Go to the top of the page
+Quote Post
aceide
post
Post #7





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 13.05.2004
Skąd: Uć.

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


Działa, właśnie o to chodziło! Dzięki wielkie. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nienawidze tablic.. :b
Go to the top of the page
+Quote Post
slaug
post
Post #8





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 2.05.2003
Skąd: Gdańsk

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


Nie ma za co.

Jeżeli jednak będziesz chciał pisać w php, czy jakim kolwiek innym języku, to do tablic będzie się trzeba kiedyś przyzwyczaić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pozdr.
Daniel
Go to the top of the page
+Quote Post

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: 24.08.2025 - 12:18