Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem w menu opcja ACTIVE
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
kps
Witam,

Chciałbym zapytać jak najlepiej robić menu w css.

Zazwyczaj strony robię tak:

Wszystko składam w jednym pliku

czyli:

- header
- w hederze zazwyczaj jest menu
- lewa strona
- prawa strona
- footer

a później żeby zrobić stronę główną w pliku index wstawiam coś takiego:
  1. <?php include("header.php");?>
  2. <?php include("left.php");?>
  3. <?php include("tresc.php");?> - to jest prawa strona
  4. <?php include("footer.php");?>


a w podstronach zmieniam tylko treść czyli:
  1. <?php include("header.php");?>
  2. <?php include("left.php");?>
  3.  
  4. Treść podstrony
  5.  
  6. <?php include("footer.php");?>


Dzięki temu z lewej strony mam zawsze to samo a prawą sobie zmieniam.

Powiedzcie mi jak można zrobić żeby w menu na każdej podstronie link był powiedzmy podświetlany
wiem że można użyć klasy "active" i ją odpowiednio opisać ale w moim przypadku na każdej podstronie
jest ten sam kod menu.

Pzdr.
pablos83
PHP (mySQL) + CSS

1. W MySQL masz rekordy ktore odpowiadaja konkretnej stronie
2. Odczytujesz ten rekord i jeden z nich bedacy kotwica (nie wiem jak inaczej to nazwac) podstawiasz do hrefa np.: index.php?page=kotwica
3. W <a> wstawiasz zamiast stałej klasy pobranej z CSS zmienną PHP
4. robisz petle while przy odczytywaniu tresci z mysql i w niej warunek if


  1. <ul class="admin_nav_button">
  2. <?php
  3. mysql_connect('localhost', 'login', 'haslo');
  4. mysql_select_db('baza');
  5. mysql_query('SET NAMES latin2');
  6. $result = mysql_list_tables('baza'); // pobierz nazwy tabel (ja mam zrobione tak ze kazda strona ma swoja tabele w mysql ->
  7. while ($row = mysql_fetch_row($result)){
  8. if ($_GET['page'] == $row[0]) { // jeżeli rekord pobrany (twoja kotwica) jest taka sama jak $_GET[page], gdzie $_GET[page] to kotwica z href
  9. $klasa_css = "admin_nav_button_active"; //twoja nazwa klasy w css (link_podswietlony)
  10. }
  11. else {
  12. $klasa_css = "admin_nav_button"; // a tu link_zwykly
  13. }
  14. print "<li class=\"$klasa_css\"><a class=\"$klasa_css\" href=\"admin.php?page=$row[0]\">$row[0]</a></li>"; // -> wyświetl menu z nazwami grup
  15. }
  16. ?>
  17. </ul>


Wynik zamiast print możesz zrobić jako zmienną dodając kolejne rekordy do niej operatorem .= i wyświetlając w dowolnym miejscu.
Oczywiście po wejściu bezpośrednim na twoją stronę żaden link nie będzie podświetlony ponieważ zmienna "kotwicy" $_GET[page] nie będzie ustawiona (isset). Ale pokombinujesz już sobie sam jak to zrobić, prawda? smile.gif

pozdr
cook
Nie wiem czy dobrze rozumiem ale spróbuj tego: http://vivee.info/2008/09/02/zakladki-do-sidebara-podpinamy/ edytuj sobie tylko na swoje potrzeby. smile.gif
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.