meni kako dodati active class na selektovanoj stranici.

meni kako dodati active class na selektovanoj stranici.

offline
  • 100%Milanista
  • Information Technology
  • Pridružio: 23 Avg 2008
  • Poruke: 2634
  • Gde živiš: Milan, Italy

Pozdrav pokusat cu da budem sto jasniji.

imam jedan fajl:


menu.php


Primjer:
<nav>       <ul>          <li><a href='index.php'><span>Home</span></a></li>          <li><a href='odeca.php'><span>Info</span></a>             <ul>                <li><a href='info1.php'><span>Info1</span></a></li>                <li><a href='info2.php'><span>Info2</span></a></li>                <li><a href='info3.php'><span>Info3</span></a></li>             </ul></li>          <li><a href='about.php'><span>About</span></a></li> </ul> </nav>

E sad kako preko JS ili preko php da napravim da mi se dodaje klasa active na stranicu koju otvorim. Recimo kada kliknem na "Info1" zelim da se doda .active na "Info1" i na "Info" (jer "Info1" spada pod "Info") tako da zelim da oba elemeta dobiju klasu .active A naravno onda kada kliknem na "About" da "About" dobije klasu .active a "Info" i "Info1" da izgube. Takodje posto je "Home" index.html on mora biti aktivan pri ucitavanju sajta to se podrazumeva.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 28 Okt 2009
  • Poruke: 212
  • Gde živiš: Kanjiza

Cekaj taj menu php ubacujes na svaku stranicu preko include-a ?
Ako samo kopiras taj kod u svaki fajl (index, about, idt) onda samo na odredjenoj stranici stavis active tamo gde treba, ako je index.php onda na linku home stavi klasu active.
Ako ubacujes preko include-a , nisam nikad radio to. Ali mi ovako pada na pamet.

Da prvo deklarises neku varijablu (npr 'file_name') i da joj dodas vrednost imena trenutne stranice.
$_SERVER['SCRIPT_FILENAME'] je funkcija za dobijanja imena trenutnog fajla, ako ne gresim.

Evo napisacu jedan kod kako zamisljam pa pokusaj primeniti u tvom primeru.
<?php    $file_name = $_SERVER['SCRIPT_FILENAME'];        //e sad u zavisnosti koliko imamo linkova u meniju toliko cemo imati varijabli ispod. U mom slucaju 3    $strana1='';    $strana2='';    $strana3='';    //posle proveravamo vrednost $filename-a i u zavisnosti od toga dodeljujemo nekoj varijabli vrednost    if(file_name=='strana1.php'){    $strana1='active';    $strana2='';    $strana3='';    }    if(file_name=='strana2.php'){    $strana1='';    $strana2='active';    $strana3='';    }    if(file_name=='strana3.php'){    $strana1='';    $strana2='';    $strana3='active';    } ?> <nav>       <ul>          <li class= <?php echo $strana1 ?>><a href='strana1.php'><span>strana3</span></a></li>          <li class= <?php echo $strana1 ?>><a href='strana2.php'><span>strana3</span></a>          <li class= <?php echo $strana1 ?>><a href='strana3.php'><span>strana3</span></a></li> </ul> </nav>

E sad nisam 100% siguran da li je sve napisano bez greske ali uglavnom poenta je da ti pokazem moju logiku razmisljanja, ako ima nekih gresaka u sintaksi to ces ispraviti. Very Happy
E sad jedino trebas proveriti sta ti tacno izbacuje $_SERVER['SCRIPT_FILENAME'] dali ce izbaci index.php ili punu putanju. Pa u zavisnosti od toga menjaj uslove u if-ovima.



offline
  • 100%Milanista
  • Information Technology
  • Pridružio: 23 Avg 2008
  • Poruke: 2634
  • Gde živiš: Milan, Italy

KecmaNedjo ::Cekaj taj menu php ubacujes na svaku stranicu preko include-a ?


Pa da zato imam problem. Jer zelim jedan menu za sve stranice. Pa posle pri izmeni da menjam samo jedan file a ne 100 fajlova. Very Happy

Ja sam bio uradio ovako:

u svakoj stranici sam dodao primer:

session_start(); $_SESSION['current_page'] = 'this_page';

a u menu.php dodao primer:
<li class="<?php if ($_SESSION['current_page'] == 'this_page'){ echo 'active '; }?>"><a href='info2.php'><span>Info2</span></a></li>

I to mi je radilo ali sam imao jedan problem. Posto ja zelim kada su mi Info1, Info2 i Info3 aktivni da mi i INFO bude aktivan. A taj problem nisam resio sa ovim. I tu sam onda zapeo.

A sad cu da probam ovaj predlog pa javim. Ziveli

offline
  • Pridružio: 28 Okt 2009
  • Poruke: 212
  • Gde živiš: Kanjiza

pa u ovom mom primeru i za svaki link trebas imati varijablu.
znaci Home, odeca, info1, info2, info3, about...
Vrv postoji elegantniji nacin ili nesto. Ovako mi je prvo palo na pamet.
Samo kao sto sam rekao, obrati paznju sta izbacije funkcija $_SERVER['SCRIPT_FILENAME'];
najbolje ubaciti ispred svega toga jedan echo $_SERVER['SCRIPT_FILENAME']; da vidis sta ti izbacuje pri razlicitim stranicma.

offline
  • 100%Milanista
  • Information Technology
  • Pridružio: 23 Avg 2008
  • Poruke: 2634
  • Gde živiš: Milan, Italy

Napisano: 17 Okt 2015 18:49

Pa znam za svaki link da trebam imati varijantu. Ali opet je bolje i to nego nista. Inace proverio sam prikazuje punu putanju. Ali mi izbacuje sledecu gresku:


Notice: Use of undefined constant file_name - assumed 'file_name' in C:\work\htdocs\test\menu.php on line 12

Dopuna: 17 Okt 2015 19:12

Napravio sam radi, samo je trebalo dodati: if($file_name=='strana1.php'){


Resili smo problem. E sad jedino ako neko ima predlog da se sve odradi na neki prostiji i jednostavniji nacin. Very Happy

Ko je trenutno na forumu
 

Ukupno su 1264 korisnika na forumu :: 40 registrovanih, 7 sakrivenih i 1217 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., amaterSRB, bagor10, bigfoot, CikaKURE, debeli, Dimitrise93, Dorcolac, draganl, Georgius, hooraay, ikan, ILGromovnik, kikisp, kuntalo, Leonov, lord sir giga, Marko Marković, Mcdado, mercedesamg, Mi lao shu, milenko crazy north, milimoj, Milometer, Milos ZA, milos.cbr, Mixelotti, nikola990, pein, repac, S2M, Skywhaler, Sumadija34, suton, t84dar, Toper, Trpe Grozni, YugoSlav, zlaya011, Zoca