Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][CSS] includowane menu i kolor aktualnie odwiedzanego linku
Forum PHP.pl > Forum > Przedszkole
gawar
Witam,
Mam stronę główną (index.php) do której za pomocą include dołączam menu (menu.php). Cała strona razem z menu jest cały czas widoczna, zmienia się tylko jeden DIV w zależności od kliknięcia na jakiś link.
Dołączenie menu
  1. <ul class="nav">
  2. <?php
  3. include_once 'go/menu.php';
  4. ?>
  5. </ul>

menu
  1. <p>Dodawanie</p>
  2. <li><a href="index.php?id=form_dodaj.php">Dodaj</a></li>
  3. <li><a href="index.php?id=form_dodaj_2.php">Dodaj 2</a></li>

Otwieranie odnśników w DIV.
  1. <div class="content">
  2. <?php
  3. if (isset( $_GET['id'])){
  4. $nr = $_GET['id'];
  5. include_once "go/$nr";
  6. } else include "go/start.html";
  7. ?>
  8. </div>

i to działa. Chciałbym jakoś przerobić moje menu żeby po kliknięciu na odnośnik zmienił on kolor i miał go aż do momentu wybrania innego linku z menu. Dodam tylko, że jeżeli z menu wybiore np. pozycję dodaj to mam tam formularz potem przetwarzam ten formularz i generuje wynik - chciałbym aby cały czas ten link pozostawał zmieniony. Myślałem żeby może dodać klasę w css która będzie np odpowiedzialna za zmianę koloru ale jak to potem razem powiązać? Z góry dziękuję za pomoc
pifarek
może coś na zasadzie:
  1. <a <?php if($nr == 1):?>class="active" <?php endif;?> href="">
gawar
nie działa. Próbowałem kilku sposobów:(
Arcioch
Pokaż jak próbowałeś smile.gif Zakładając że menu jest includowane wcześniej niż content kod użytkownika Pifarek nie będzie prawidłowy bo $nr bedzie nulem dlatego warunek nie zadziała smile.gif Jeżeli chcesz używać $nr w menu musisz ją zadeklarować gdzieś u góry dokument albo sprawdzać prosto ze zmiennej $_GET smile.gif
b4rt3kk
Co powiesz na jQuery? Spróbuj:

  1. $(function(){
  2. $('li a').click(function(){
  3. $('li').each(function(){
  4. $(this).toggleClass('active');
  5. });
  6. $(this).parent('li').toggleClass('active');
  7. });
  8. });


Nie zapomnij dodać w HEAD:
  1. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
gawar
b4rt3kk - jeżeli chodzi o jQuery to odpada bo w całym projekcie tego nie używałem i nie chce teraz tylko po to dołączać całej biblioteki.
Arcioch - próbowałem kombinować coś w podobny sposób jak zaproponował pifarek ale wyrzuca mi, że mam niezdefiniowaną zmieną. Jest tak jak pisałeś menu najpierw ładuje do index.php dopiero potem wywołuje treść diva content.

Próbowałem tak modyfikować menu.php
  1. <li><a <?php if($nr =="index.php?id=form_dodaj.php"):?>class="active" <?php endif;?> href="index.php?id=form_dodaj.php">Dodaj</a></li>

i tak
  1. <li><a <?php if (isset( $_GET['id'])){
  2. $nr = $_GET['id']; }
  3. if($nr =="index.php?id=form_dodaj.php") {echo 'class="active"'; }?> href="index.php?id=form_dodaj.php">Dodaj</a></li>
Arcioch
Daj tak i powinno działać wink.gif

  1. <li><a <?if($_GET['id'] == "form_dodaj.php"):?>class="active" <?endif;?> href="index.php?id=form_dodaj.php">Dodaj</a></li>


Ps. Nie jest za bezpiecznie przesyłać w zmiennej $_GET nazwy plików wraz z rozszerzeniem wink.gif
gawar
Nie działa, zamiast odnośnika pokazuje class="active" href="index.php?id=form_dodaj.php">Dodaj

Co do nazw plików, które przechodzą przez $_GET to nie musi to być na tym poziomie bezpieczne bo chodzi to tylko lokalnie.

Arcioch
Jeżeli tam gdzie jest includowany plik form_dodaj.php przy linku Dodaj pokazuje się w kodzie html class="active" to znaczy że działa wink.gif
gawar
Nie można tam kliknąć - nie działa to jako odnośnik, tam gdzie dołączam menu tworzy się jakby pozycja z czymś takim: class="active" href="index.php?id=form_dodaj.php">Dodaj
b4rt3kk
A spróbuj tak:

  1. <?php
  2. echo '<li><a ';
  3. if ($_GET['id'] == 'form_dodaj.php') echo 'class="active" ';
  4. echo 'href="index.php?id=form_dodaj.php">Dodaj</a></li>';
  5. ?>

gawar
Witam, problem rozwiązany temat do zamknięcia. Pomógł mi Arcioch, za co bardzo dziękuję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.