PHP týden Letní akce
Pouze tento týden sleva až 80 % na kurzy PHP. Lze kombinovat s akcí Letní slevy na prémiový obsah!
Brno? Vypsali jsme pro vás nové termíny školení Základů programování a OOP v Brně!
Avatar
Stivko
Člen
Avatar
Stivko:1. července 18:09

Zdravím,

Potřebuju, aby mi v navigaci po přesměrování na jinou stránku zůstal zvýrazněn link. Žádný z návodů mi nedokáže poradit v případě, že použiju PHP layout nebo jak se to jmenuje. Viz kód.

<div class="nav-left">
          <ul class="nav2">
            <li><a id="portfolio" href="administrace.php?page=portfolioUpload">Portfolio</a></li>
            <li><a id="obsah" href="administrace.php?page=obsah">Obsah</a></li>

          </ul>
        </div>

Zkoušel jsem to udělat v jquery, ale nefunguje to. Nevím, jak to udělat, když za odkazem mam ?page= ... Předem díky za jakékoliv rady.

Odpovědět 1. července 18:09
Nikdy není pozdě začít s něčím novým
Avatar
Martin Havelka
Redaktor
Avatar
Odpovídá na Stivko
Martin Havelka:1. července 19:03

Ahoj,
např. tam přidej php skript, kde budeš kontrolovat hodnotu proměnné page z query stringu...podle toho, kterému layoutu se bude rovnat, tak zvýrazníš příslušný odkaz v navigaci jako aktivní.

 
Nahoru Odpovědět  +1 1. července 19:03
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:2. července 9:30

Nedal jsi sem tvuj php kod. Toto je jen html kod, ktery zadne php neovlivnuje. Tudiz to nic nedela.


V php by to slo resit cyklem. Nebo prepisovanim templatu.
V js/jquery totez.


Odkaz je zasilani udaju na server metodou "get". V php to funguje takto

--- soubor.php ---
<?php
$value = isset($_GET['page']) ? $_GET['page'] : ''; // precteni hodnotu z get
echo $value; // vypsani hodnoty
if ($value=='obsah') // porovnani hodnoty a vypsani odkazu
    {echo '<a href="blabla" class="active">odkaz</a>';}
else
    {echo '<a href="blabla">odkaz</a>';}
?>

Nebo tam muzes dat v php regularni vyraz, str_replace, strtr a nebo neco jineho.

$tpl = '
            <li><a id="portfolio" href="administrace.php?page=portfolioUpload">Portfolio</a></li>
            <li><a id="obsah" href="administrace.php?page=obsah">Obsah</a></li>
';
$cnt = strtr($tpl, array('?page='.$value.'"' => '?page='.$value.'" class="active"'));
echo $cnt;
// nahrad ::: administrace.php?page=obsah" ::: za ::: administrace.php?page=obsah" class="active" :::
// cili prida class="active", pokud je v $value text 'obsah'
Editováno 2. července 9:32
 
Nahoru Odpovědět  +1 2. července 9:30
Avatar
Stivko
Člen
Avatar
Stivko:4. července 14:22

Děkuji všem za rady. Mrknul jsem se na to a nakonec jsem z toho sestavil následující kód.

function activeLink() {
    $value = isset($_GET['page']) ? $_GET['page'] : "";
    switch ($value) {
        case '':
            echo '<li><a href="administrace.php?page=portfolioUpload">Portfolio</a></li>';
            echo '<li><a href="administrace.php?page=obsah">Obsah</a></li>';
            break;
        case 'portfolioUpload':
            echo '<li><a style="color: #badc58;" href="administrace.php?page=portfolioUpload">Portfolio</a></li>';
            echo '<li><a href="administrace.php?page=obsah">Obsah</a></li>';
            break;

        case 'obsah':
            echo '<li><a href="administrace.php?page=portfolioUpload">Portfolio</a></li>';
            echo '<li><a style="color: #badc58;" href="administrace.php?page=obsah">Obsah</a></li>';
            break;
    }
}
Akceptované řešení
+5 Zkušeností
Řešení problému
Nahoru Odpovědět  +1 4. července 14:22
Nikdy není pozdě začít s něčím novým
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.