Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Generowanie nawigacji z pętli
troian
post
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

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


Witam, mam pytanie w jaki sposób można by napisać taką oto nawigację tylko że za pomocą pętli:
  1. <ul>
  2. <li><a href="#">Home</a></li>
  3. <li><a href="#">About</a>
  4. <ul>
  5. <li><a href="#">History</a></li>
  6. <li><a href="#">Team</a></li>
  7. <li><a href="#">Offices</a></li>
  8. </ul>
  9. </li>
  10. <li><a href="#">Services</a>
  11. <ul>
  12. <li><a href="#">Web Design</a></li>
  13. <li><a href="#">Internet
  14. Marketing</a></li>
  15. <li><a href="#">Hosting</a></li>
  16. <li><a href="#">Domain Names</a></li>
  17. <li><a href="#">Broadband</a></li>
  18. </ul>
  19. </li>
  20. <li><a href="#">Contact Us</a>
  21. <ul>
  22. <li><a href="#">United Kingdom</a></li>
  23. <li><a href="#">France</a></li>
  24. <li><a href="#">USA</a></li>
  25. <li><a href="#">Australia</a></li>
  26. </ul>
  27. </li>
  28. </ul>


Wygląda ona tak:
(IMG:http://magazynt3.pl/wp-content/uploads/2009/04/25_sposobow_na_nawigacje_w_css-1c-300x163.png)

Normalną nawigację wiem jak wykonać za pomocą pętli i array jednak ta jest nieco bardziej skompilowana trzeba by dodać jakiś parametr który przypisywał by cześć zawartości z tablicy do danego rekordu

Aktualnie mam napisane coś takiego:
  1. //tablica
  2. $nawigacja = array (
  3. 1 => array('Strona Główna', '?strona=1'),
  4. 2 => array('Zarządzaj Galerią', '?strona=2'),
  5. 3 => array('Zakładka "O Nas"', '?strona=3'),
  6. 4 => array('Edytuj Oferty', '?strona=4'),
  7. 5 => array('Zarządzaj Kontaktami', '?strona=5'),
  8. 6 => array('Wiadomości', '?strona=6'),
  9. 7 => array('Statystyki www', '?strona=7'),
  10. 8 => array('Zarządzaj Mediami', '?strona=8'),
  11. );
  12. $ilosc_naw = count($nawigacja);
  13.  
  14. // Generowanie nawigaci:
  15. for( $x = 1; $x <= $ilosc_naw; $x++ )
  16. {
  17. echo'<a class="global_navi_bg" href="'.$konf['url'].'/'.$nawigacja[$x][1].'">';
  18. echo' <div class="global_navi_set">';
  19. echo' <div class="global_icon_navi_'.$x.'"></div>';
  20. echo' <div class="global_tekst_navi">'.$nawigacja[$x][0].'</div>';
  21. echo' </div>';
  22. echo' </a>';
  23. }


Jednak w taki sposób generowana nawigacja jest zbyt długa [ Po włączeniu wszystkich opcji ] Dlatego pytam czy jest możliwość napisania tego czy będę musiał ręcznie w html'u napisać całość.
Go to the top of the page
+Quote Post
Aqu
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


Musisz wykorzystać rekurencje, tak jak tutaj:
http://stackoverflow.com/questions/1470459...-from-php-array
http://stackoverflow.com/questions/1174715...ray-dynamically
Go to the top of the page
+Quote Post
markuz
post
Post #3





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


  1. $nawigacja = array (
  2. 1 => array('Strona Główna', '?strona=1'),
  3. 2 => array('Zarządzaj Galerią', '?strona=2'),
  4. 3 => array('Zakładka "O Nas"', '?strona=3'),
  5. 4 => array('Edytuj Oferty', '?strona=4'),
  6. 5 => array('Zarządzaj Kontaktami', '?strona=5'),
  7. 6 => array('Wiadomości', '?strona=6', array(
  8. array('Nowe wiadomości', '?strona=9')
  9. )),
  10. 7 => array('Statystyki www', '?strona=7'),
  11. 8 => array('Zarządzaj Mediami', '?strona=8'),
  12. );
  13. $ilosc_naw = count($nawigacja);
  14.  
  15. // Generowanie nawigaci:
  16. for( $x = 1; $x <= $ilosc_naw; $x++ )
  17. {
  18. $submenu = array();
  19. if(isset($nawigacja[$x][2]) && is_array($nawigacja[$x][2]))
  20. $submenu = $nawigacja[$x][2];
  21. echo'<a class="global_navi_bg" href="'.$konf['url'].'/'.$nawigacja[$x][1].'">';
  22. echo' <div class="global_navi_set">';
  23. echo' <div class="global_icon_navi_'.$x.'"></div>';
  24. echo' <div class="global_tekst_navi">'.$nawigacja[$x][0];
  25. if(count($submenu) > 0)
  26. foreach($submenu as $menuItem)
  27. echo '<a href="'.$menuItem[1].'">'.$menuItem[0].'</a>';
  28. echo '</div>';
  29. echo' </div>';
  30. echo' </a>';
  31. }


Dopisane z palca - mogą być błędy.
Go to the top of the page
+Quote Post
troian
post
Post #4





Grupa: Zarejestrowani
Postów: 184
Pomógł: 2
Dołączył: 3.02.2013

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


Dobra zrobiłem, Dzięki wielkie za pomoc (IMG:style_emoticons/default/smile.gif)

Ten post edytował troian 14.02.2015, 12:29:04
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: 23.08.2025 - 17:00