Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dodanie klasy activ do aktywnej obenie podstrony menu, includowane menu jak dodać element aktywny?
Poczatkujacy_Web
post
Post #1





Grupa: Zarejestrowani
Postów: 145
Pomógł: 0
Dołączył: 30.07.2012
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Witam,


Chciałbym do mojej strony includować plik w którym znajduje się menu np.

menu.php - w któym znajduje się kod menu przykład:

<div id="menu">
<ul>
<li><a href="index.php"> HOME</a></li>
<li><a href="kontakt.php"> KONTAKT</a></li>
<li><a href="cos.php"> COŚ</a></li>
</ul>
</div>

teraz moje pytanie jak zrobić aby php dodawało clase activ do elementu li aktywnej aktualnie podstrony?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
kropamk
post
Post #2





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


wyślij $_GET i odbierz go w jakiejś pętli aby dodać klasę odpowiednią (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Poczatkujacy_Web
post
Post #3





Grupa: Zarejestrowani
Postów: 145
Pomógł: 0
Dołączył: 30.07.2012
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Cytat(kropamk @ 9.03.2014, 22:14:40 ) *
wyślij $_GET i odbierz go w jakiejś pętli aby dodać klasę odpowiednią (IMG:style_emoticons/default/wink.gif)


wiesz co nie jestem zbyt dobry w php, uczę się go powoli i mozolnie, gdybyś mógł mi jakoś bardziej pomóc to byłbym wdzięczny.
Go to the top of the page
+Quote Post
rad11
post
Post #4





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Mi sie wydaje ze takie rzeczy jak aktywny link to bedzie lepiej Ci wykonac poprzez np jquery:

active

Go to the top of the page
+Quote Post
kropamk
post
Post #5





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


a jak ktoś wyłączy js na stronie (IMG:style_emoticons/default/smile.gif) ?

nie podoba mi się do końca Twój sposób ładowania/wyświetlania menu ale jeżeli już tak musisz i trzymając się mojego sposobu to po prostu do kadej pozycji li Twojego menu dodaj w linku wartość get i sprawdzaj aby dodać klasę np.

  1. <li><a href="index.php?active=1" class="<?php echo ($_GET['active'] == 1) ? 'active' : 'no-active' ?>"> HOME</a></li>


Ten post edytował kropamk 9.03.2014, 22:30:56
Go to the top of the page
+Quote Post
rad11
post
Post #6





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Kto w dzisiejszych czasach ma wylaczony js (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
kropamk
post
Post #7





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


developer, roboty i inne psuje, które chcą Ci rozwalić stronę (IMG:style_emoticons/default/wink.gif) jak robisz formularz to robisz tylko walidacje js? Czy też php (IMG:style_emoticons/default/wink.gif) ale każdy może mieć swoje zdanie, ja nie polecam tworzyć menu na jquery (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Poczatkujacy_Web
post
Post #8





Grupa: Zarejestrowani
Postów: 145
Pomógł: 0
Dołączył: 30.07.2012
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Cytat(kropamk @ 9.03.2014, 22:30:20 ) *
a jak ktoś wyłączy js na stronie (IMG:style_emoticons/default/smile.gif) ?

nie podoba mi się do końca Twój sposób ładowania/wyświetlania menu ale jeżeli już tak musisz i trzymając się mojego sposobu to po prostu do kadej pozycji li Twojego menu dodaj w linku wartość get i sprawdzaj aby dodać klasę np.

  1. <li><a href="index.php?active=1" class="<?php echo ($_GET['active'] == 1) ? 'active' : 'no-active' ?>"> HOME</a></li>



dodałem to do elementów mojego menu zawartego w header.php przykład:

  1. <nav class="nav-main mega-menu">
  2. <ul class="nav nav-pills nav-main" id="mainMenu">
  3.  
  4.  
  5.  
  6. <li><a href="index.php?active=1" class="<?php echo ($_GET['active'] == 1) ? 'active' : 'no-active' ?>"> HOME</a></li>
  7.  
  8. <li><a href="index.php?active=1" class="<?php echo ($_GET['active'] == 1) ? 'active' : 'no-active' ?>"> HOME1</a></li>
  9. <li><a href="index.php?active=1" class="<?php echo ($_GET['active'] == 1) ? 'active' : 'no-active' ?>"> HOME2</a></li>
  10. <li><a href="index.php?active=1" class="<?php echo ($_GET['active'] == 1) ? 'active' : 'no-active' ?>"> HOME3</a></li>
  11. <li><a href="index.php?active=1" class="<?php echo ($_GET['active'] == 1) ? 'active' : 'no-active' ?>"> HOME4</a></li>
  12. </ul>
  13. </nav>



dalej includuje to w index.php

  1. <?php include'header.php'; ?>


ale nie działa w żaden sposób
Go to the top of the page
+Quote Post
kropamk
post
Post #9





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


zbadaj element li i powiedz mi czy dodaje jakąś klasę czy wywala błąd.

wrzuciłem u siebie ten kod na localu, nawet z includowanym menu tak jak Ty to robisz i mi dodaje klase active oraz no-active (IMG:style_emoticons/default/wink.gif) kod jest dobrze napisany
Go to the top of the page
+Quote Post
Poczatkujacy_Web
post
Post #10





Grupa: Zarejestrowani
Postów: 145
Pomógł: 0
Dołączył: 30.07.2012
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Cytat(kropamk @ 9.03.2014, 22:58:02 ) *
zbadaj element li i powiedz mi czy dodaje jakąś klasę czy wywala błąd.

wrzuciłem u siebie ten kod na localu, nawet z includowanym menu tak jak Ty to robisz i mi dodaje klase active oraz no-active (IMG:style_emoticons/default/wink.gif) kod jest dobrze napisany


Dodaje klase "no-active" do elementu "a"

chcialbym aby dodawalo do elementu "li"



Ok, ogarnołem żeby dodawało do li, tylko teraz tak:

mam menu:

  1. <nav class="nav-main mega-menu">
  2.  
  3. <ul class="nav nav-pills nav-main" id="mainMenu">
  4.  
  5.  
  6. <li class="<?php echo ($_GET['active'] == 1) ? 'no-active' : 'active' ?>"><a href="index.php?active=1" > HOME</a></li>
  7. <li class="<?php echo ($_GET['active'] == 1) ? 'no-active' : 'active' ?>"><a href="index1.php?active=1" > HOME1</a></li>
  8. <li class="<?php echo ($_GET['active'] == 1) ? 'no-active' : 'active' ?>"><a href="index2.php?active=1" > HOME2</a></li>
  9. <li class="<?php echo ($_GET['active'] == 1) ? 'no-active' : 'active' ?>"><a href="index3.php?active=1" > HOME3</a></li>
  10.  
  11. </ul>
  12.  
  13. </nav>



wyswietlane w pliku index.php, index1.php i w kazdym dodaje klase active do wszystkich elementow menu... jak zrobic aby wybieralo ten wlasciwy czyli aktywny?
Go to the top of the page
+Quote Post
kropamk
post
Post #11





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


po ? jest prawda a po : fałsz więc masz na odwrót (IMG:style_emoticons/default/wink.gif) dodałem jeszcze isset, żeby nie wywalał błędu jak nie ma geta (IMG:style_emoticons/default/wink.gif)

  1. <li class="<?php echo (isset($_GET['active']) == 1) ? 'active' : 'no-active' ?>">
  2. <a href="index.php?active=1" >HOME</a>
  3. </li>



no i widzę, że masz linki do index1.php a nie do index.php a chyba includujesz do index.php, prawda ?

Ten post edytował kropamk 9.03.2014, 23:22:28
Go to the top of the page
+Quote Post
Poczatkujacy_Web
post
Post #12





Grupa: Zarejestrowani
Postów: 145
Pomógł: 0
Dołączył: 30.07.2012
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Cytat(kropamk @ 9.03.2014, 23:21:20 ) *
po ? jest prawda a po : fałsz więc masz na odwrót (IMG:style_emoticons/default/wink.gif) dodałem jeszcze isset, żeby nie wywalał błędu jak nie ma geta (IMG:style_emoticons/default/wink.gif)

  1. <li class="<?php echo (isset($_GET['active']) == 1) ? 'active' : 'no-active' ?>">
  2. <a href="index.php?active=1" >HOME</a>
  3. </li>



no i widzę, że masz linki do index1.php a nie do index.php a chyba includujesz do index.php, prawda ?



no ok, a jeśli mam więcej elementów w menu? i inluduje ten sam plik?

chodzi mi o to ze mam w menu podstrony:
home, kontakt, itd

i chce do nich includowac jeden plik z menu tak aby dodawał tylko do aktywnego elementu klase activ.

robie to po to ze strona bedzie miala wiele podstron i chce za jednym zamachem zmieniac potem zakladki w menu.
Go to the top of the page
+Quote Post
kropamk
post
Post #13





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


ok to sprawa wygląda tak, każde a w li ma geta page_id o przypisanej wartości tylko dla tej gałęzi. Pod strony, które się zawierają w nim też mają geta.
Czyli index ma wartośc page_id=1, kontakt ma page_id=4, ... itd.

(IMG:style_emoticons/default/smile.gif) kod poniżej

  1. <?php
  2. if (isset($_GET['page_id'])) {
  3. $page_id = $_GET['page_id'];
  4. }
  5. ?>
  6. <div id="menu">
  7. <ul>
  8. <li class="<?php echo ($page_id == 1) ? 'active' : 'no-active' ?>">
  9. <a href="index.php?page_id=1" >HOME</a>
  10. <ul>
  11. <li>
  12. <a href="index.php?page_id=1">item1</a>
  13. </li>
  14. </ul>
  15. </li>
  16.  
  17. <li class="<?php echo ($page_id == 2) ? 'active' : 'no-active' ?>">
  18. <a href="index.php?page_id=2" >HOME</a>
  19. <ul>
  20. <li>
  21. <a href="site.html?page_id=2">item1</a>
  22. </li>
  23. </ul>
  24. </li>
  25. </ul>
  26. </div>


Ten post edytował kropamk 9.03.2014, 23:44:47
Go to the top of the page
+Quote Post
Poczatkujacy_Web
post
Post #14





Grupa: Zarejestrowani
Postów: 145
Pomógł: 0
Dołączył: 30.07.2012
Skąd: Łódź

Ostrzeżenie: (10%)
X----


Super ! działa, tylko z tymi linkami nie da się nic zrobić żeby wyglądały naturalnie?
Go to the top of the page
+Quote Post
kropamk
post
Post #15





Grupa: Zarejestrowani
Postów: 156
Pomógł: 12
Dołączył: 30.11.2011
Skąd: Gdańsk

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


a to już odsyłam do mod rewrite (IMG:style_emoticons/default/wink.gif) całkiem inny temat (IMG:style_emoticons/default/wink.gif)
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: 22.08.2025 - 23:52