IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Stivko
Člen
Avatar
Stivko:1.7.2019 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.7.2019 18:09
Nikdy není pozdě začít s něčím novým
Avatar
Odpovídá na Stivko
Martin Havelka:1.7.2019 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.7.2019 19:03
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:2.7.2019 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.7.2019 9:32
 
Nahoru Odpovědět
2.7.2019 9:30
Avatar
Stivko
Člen
Avatar
Stivko:4.7.2019 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
4.7.2019 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.