Zaznaczona aktualnie otwarta strona w menu

0

Witam serdecznie, właśnie tworzę stronę www i chciałbym zrobić tak, by w menu aktualnie otwarta strona była w jakiś sposób wyróżniona. Czy do tego można użyć jQuery? Jest jakaś komenda/funkcja jQuery zwracająca aktualnie otwartą stronę przez klienta? Jak zrobić to najprościej? Jeśli dobrze się zastanowić, to można to np. zrobić za pomocą PHP, jednakże za pomocą jQuery byłoby to chyba prostsze... Czekam na Wasze zdanie/opinie/podpowiedzi/gotowe fragmenty kodu. Serdecznie pozdrawiam i z góry dziękuję za chęć pomocy!

0

Tego się nie robi wyłącznie za pomocą jQuery. Nie ma sposobu, by jQuery w magiczny sposób wiedziało, że pozycja w menu nawigacyjnym "O nas" odpowiada stronie o tytule "Informacje o firmie Stefbud" i z nagłówkiem o treści "Misja i wizja Stefbudu". Mógłbyś oczywiście trzymać się pewnej konwencji, np. takiej, że na początku tytułu każdej strony znajduje się dokładnie ten tekst, co w danej opcji w menu, ale to jest mało elastyczne i nie sprawdzi się gdy np. w menu masz główne działy, w których znajdują się jeszcze jakieś podstrony.

Rozwiązuje się to tak, że po stronie serwera (np. w PHP, czy czego tam używasz) w trakcie budowania menu, dodajesz do linku odpowiadającemu stronie bieżącej klasę "selected", "active", czy co tam sobie wymyślisz. Potem, w CSS dodajesz odpowiednie style dla elementu menu z klasę .selected.

0

prościej raczej przy pomocy php (dodać klasę css) niz jquery - no i nie wymaga javascriptu.
miloby bylo jakbys pokazał na jakiej zasadzie tworzysz podstrony, czy kazda masz w osobnym php (jak kazdy poczatkujacy), czy moze masz jeden index.php i np parametr strona (czyli index.php?strona=newsy) ?
generalnie:

ul li {
 color: black;
}
ul li.current {
 color: red;
}

jak masz kazdy php osobno i w kazdym masz kopię menu:

<ul id="menu">
  <li class="current">newsy</li>
  <li>o mnie</li>
  <li>kontakt</li>
</ul>
</php>

jak masz jeden php i ladujesz podstrony z innych plikow w zaleznosci od parametru:
```php
<ul id="menu">
  <li <?php if ($_GET['strona']=="newsy") { echo 'class="current"; } ?>>newsy</li>
  <li <?php if ($_GET['strona']=="o_mnie") { echo 'class="current"; } ?>>o mnie</li>
  <li <?php if ($_GET['strona']=="kontakt") { echo 'class="current"; } ?>>kontakt</li>
</ul>
</php>

cos takiego.. ale pytanie zbyt ogolne i bez fragmentow kodu - na przyszlosc podziel sie fragmentem kodu o ktory pytasz
0
dzek69 napisał(a)

prościej raczej przy pomocy php (dodać klasę css) niz jquery - no i nie wymaga javascriptu.
miloby bylo jakbys pokazał na jakiej zasadzie tworzysz podstrony, czy kazda masz w osobnym php (jak kazdy poczatkujacy), czy moze masz jeden index.php i np parametr strona (czyli index.php?strona=newsy) ?
generalnie:

ul li {
 color: black;
}
ul li.current {
 color: red;
}

jak masz kazdy php osobno i w kazdym masz kopię menu:

<ul id="menu">
  <li class="current">newsy</li>
  <li>o mnie</li>
  <li>kontakt</li>
</ul>
</php>

jak masz jeden php i ladujesz podstrony z innych plikow w zaleznosci od parametru:
```php
<ul id="menu">
  <li <?php if ($_GET['strona']=="newsy") { echo 'class="current"; } ?>>newsy</li>
  <li <?php if ($_GET['strona']=="o_mnie") { echo 'class="current"; } ?>>o mnie</li>
  <li <?php if ($_GET['strona']=="kontakt") { echo 'class="current"; } ?>>kontakt</li>
</ul>
</php>

cos takiego.. ale pytanie zbyt ogolne i bez fragmentow kodu - na przyszlosc podziel sie fragmentem kodu o ktory pytasz



A jeśli tworzę stronę html bez php (no, moze poza zastosowaniem php include do stałych elementów strony)?
0

menu zrób w php i tez je includuj, reszte zostaw normalnie

0
dzek69 napisał(a)

menu zrób w php i tez je includuj, reszte zostaw normalnie

Ok, dzięki! Wszystko jasne... Dzięki za pomoc raz jeszcze

0

Hej! Mam 2 pytania:

  1. gdzie i co wpisać aby mój serwer (dajmy na to lokalny XAMPP) widział PHP w plikach HTML
  2. Jeśli mam na stronie jakiś (choćby najmniejszy) element dynamiczny - lepiej zostać przy rozszerzeniu html czy może robić stronki z rozszerzeniem php? Jakie jest Wasze zdanie na ten temat?

Z góry wielkie dzięki za Wasze cenne dla mnie wskazówki... Pozdrawiam!

0

Zrób .php. Wszystko, co jest napisane w PHP zrób w plikach się z tym kojarzącym, będzie łatwiej. A jeżeli chcesz, aby na stronie użytkownik nie widział tych końcówek .php, ale np. .html (a nawet .cokolwiek) to też da się to zrobić, za pomocą mechanizmu mod_rewrite.

0
dzek69 napisał(a)

prościej raczej przy pomocy php (dodać klasę css) niz jquery - no i nie wymaga javascriptu.
miloby bylo jakbys pokazał na jakiej zasadzie tworzysz podstrony, czy kazda masz w osobnym php (jak kazdy poczatkujacy), czy moze masz jeden index.php i np parametr strona (czyli index.php?strona=newsy) ?
generalnie:

ul li {
 color: black;
}
ul li.current {
 color: red;
}

jak masz kazdy php osobno i w kazdym masz kopię menu:

<ul id="menu">
  <li class="current">newsy</li>
  <li>o mnie</li>
  <li>kontakt</li>
</ul>
</php>

jak masz jeden php i ladujesz podstrony z innych plikow w zaleznosci od parametru:
```php
<ul id="menu">
  <li <?php if ($_GET['strona']=="newsy") { echo 'class="current"; } ?>>newsy</li>
  <li <?php if ($_GET['strona']=="o_mnie") { echo 'class="current"; } ?>>o mnie</li>
  <li <?php if ($_GET['strona']=="kontakt") { echo 'class="current"; } ?>>kontakt</li>
</ul>
</php>

cos takiego.. ale pytanie zbyt ogolne i bez fragmentow kodu - na przyszlosc podziel sie fragmentem kodu o ktory pytasz


Witam ponownie... mam takie pytanie - jak zastosować to co napisałeś do tego przypadku: każda podstrona to inny plik index.php, jednakże menu mam w jednym pliku menu.php, które includuję:
```php
<ul>
      	<li><a href="/uslugi/">oferta</a></li>
        <li><a href="/technologie/">stosowane technologie</a></li>
          <ul class="menu_details">
              <li><a href="/technologie/jquery/">jQuery</a></li>
              <li><a href="/technologie/technologia_flash/">flash</a></li>
              <li><a href="/technologie/uslugi_sieciowe/">usługi sieciowe</a></li>
            </ul>
        <li><a href="/gotowe_rozwiazania/">gotowe rozwiązania</a></li>
      </ul> 

Z niecierpliwością czekam na Wasze wskazówki. Pozdrawiam!

1 użytkowników online, w tym zalogowanych: 0, gości: 1