Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Podświetlanie aktualnego linka
Forum PHP.pl > Forum > Po stronie przeglądarki
kowalewski92
Witam,
mam problem ze stroną. Chcę zrobić tak aby po kliknięciu w daną zakładkę została ona pomarańczowa. Analogicznie jak kliknę w następną to zmieni ona kolor na pomarańczowy, a ta stara wróci do stanu pierwotnego. Menu jest wczytywane za pomocą "include" jak i wszystkie zmienne treści. Zastanawiam się jak to zrobić? Czy ktoś może pomóc?
nospor
Problem jest banalnie prosty. Wystarczy że w linii 15 dasz taki kawałek kodu:
  1. echo 'Zaznaczona zakładko podświetl się na pomarańczowo';

Zadziała na 100%

ps (na wypadek jakbyś nie załapał aluzji):
pokaż kod...wróżek nie ma...
!*!
http://jsfiddle.net/henrichro/SRBjz/

po stronie PHP

  1. if($_GET['nazwaStrony']){echo 'class=active';}
kowalewski92
Dzięki za odpowiedź. Czyli Javę wklejam w script i praży?
nospor
1) Nie javę a javascript lub jak nie lubisz długo to js
2) Nie wklejasz bezmyślnie, ale dopasowujesz do tego co masz. Jeśli by zadziałało dokładnie to co podał !*! to znaczyłoby, że z niego niezły wróżbita...
kowalewski92
Przepisałem to z tego linka: http://jsfiddle.net/henrichro/SRBjz/
do swojego pliku html i css. JS wstawiłem w <script></script>. Niestety po przepisaniu nie działa mi to? Czemu?
nospor
Podany tam kod wymaga biblioteki jQuery.
!*!
http://jsfiddle.net/henrichro/SRBjz/show/ przejrzyj źródło.
kowalewski92
Jednak to nie będzie działało ponieważ strona ulega przeładowaniu i to podświetlenie, które ma zostać znika po chwili bo od nowa się wczytuje. Jak kliknie się drugi raz po wczytaniu to już jest normalnie ale takie rozwiązanie jest bezsensu. Inaczej się chyba tego nie zrobi.
!*!
Podałem Ci dwa rozwiązania w JS i w PHP.
kowalewski92
Tylko ja nie do końca rozumiem jak mam to umieścić w moim pliku, a konkretnie gdzie. Wrzucam ten kod za "li" tak?
Mam osobny plik menu.php i co z nim dokładnie robię?
To jest moje menu:
Kod
<ul class="leftMenuList">
                        <li class="leftMenuList"><a href="micro_round#m15ml">Airless Dispensers</a></li>
                        <li style="list-style: none; display: inline">
                            <ul class="leftMenuList2">
                              <li class="leftMenuList2"><a href="micro_round#m15ml">Micro</a></li>
                              <li class="leftMenuList2"><a href="mezzo_round#m30ml">Mezzo</a></li>
                              <li class="leftMenuList2"><a href="mini_oval#m30ml">Mini</a></li>
                            </ul>
                      </li>
                        <li class="leftMenuList"><a href="aluminum#rb15ml">Cosmetic Jars</a></li>
                        <li style="list-style: none; display: inline">
                            <ul class="leftMenuList2">
                                <li class="leftMenuList2"><a href="aluminum#rb15ml">Aluminum</a></li>
                                <li class="leftMenuList2"><a href="san#so4ml">SAN</a></li>
                            </ul>
                    </li>
                        <li class="leftMenuList"><a href="glass3#drp3ml">Droppers</a></li>
                        <li style="list-style: none; display: inline">
                            <ul class="leftMenuList2">
                                <li class="leftMenuList2"><a href="glass3#drp3ml">Glass</a></li>
                            </ul>
                    </li>
                        <li class="leftMenuList"><a href="rollon#rln4ml">Roll On</a></li>
                        <li style="list-style: none; display: inline">
                            <ul class="leftMenuList2">
                                <li class="leftMenuList2"><a href="rollon#rln4ml">Glass</a></li>
                            </ul>
                    </li>
                    </ul>
!*!
Nie. Wrzucasz ten kod do LI, a dokładniej do elementów które chcesz podświetlić czyli nadać im klasę "active".

  1. <li <?php if($_GET['nazwaStrony']){echo 'class=active';} ?>>fooo</li>


Zakładam że wiesz co to jest nazwaStrony i dlaczego trzeba to zmienić.
kowalewski92
Nie wiem... wrzucam to tak jak piszesz i mi to nie działa...
Wrzuciłem do li ten fragment php i w css'ie odniosłem się do active.
!*!
Zobacz czym jest GET oraz jak ją odbierać. Zamień ją na swoją jaką masz w linku index?strona=A itp.
kowalewski92
Ja nie miałem nic wspólnego z PHP, po prostu chce edytować istniejącą już stronę. Czy możesz mi dać po prostu gotowca? Wrzuciłem plik menu.php.
Mam to:

<li class="leftMenuList2"><a href="micro_round#m15ml">Micro</a></li>,

czyli z tego robię coś takiego:

<li <?php if($_GET['micro_round']){echo 'class=active';} ?>class="leftMenuList2"><a href="micro_round#m15ml">Micro</a></li>,

tak? Czy taka klasa leftMenuList2 musi zniknąć stamtąd? Nie mogę teraz tego sprawdzić czy działa bo nie mam takiej możliwości aktualnie.
!*!
w class może być kilka parametrów, czyli jak link jest aktywny to możesz zapisać "leftMenuList2 active". Wywal te kotwice.

  1. <li class="leftcostam<?php if(isset($GET['page']) AND $GET['page'] == 'micro_round')){echo 'active'}?>">


Gdzie GET page to zmienna która jest u Ciebie w linku, pasek przeglądarki.
kowalewski92
Mhm, tylko u mnie na stronie jest tak, że jak wejdę w którąś zakładkę to jest dajmy na to: micro_round#a zmienisz zakładkę na tej podstronie to będzie micro_round#b czyli w page'u mogę dać micro_round? Żeby dla niego był active.
!*!
Zakładki zmieniasz na podstawie JS, czyli tak jak napisałem wyżej i nie ma prawa być wtedy żadnego przeładowania, chyba że napisałeś to źle. Pokaż kod.
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.