Autor Zpráva
web2000@seznam.cz
Profil *
Ahoj, snažím se nastavit vybranou položku v menu na trvale aktivní (změna barvy dokud se nepřejde na jinou stránku), jeli vybrána celá stránka.

Pokud jako název stránky zadám existující soubor s příponou reference.php vše funguje, ale stránky vypisuji s databáze (nemám tedy fyzické soubory) a navíc používám hezké adresy typu

s-2_reference (2 je id stránky)

Ve funkci se ale porovnává zda se název stránky schoduje se skutečným, otázkou je jaký název stránky je na pozadí aby došlo ke schodě, ta hezká adresa to nebude, jelikož to hází, že se nerovná a tato s htaccess stranka.php?n=$1&s=$2 také ne


while ($data = mysql_fetch_array ($vystup))
{
echo "<li".aktiv("stranka")."><h2><a href=\"s-".$data['id_stranka']."_".$data['seo_stranka']."\">".$data['nazev_stranka']."</a></h2></li>\n"; 
}


Funkce:

function aktiv($page){
$path_parts = pathinfo($_SERVER['SCRIPT_NAME']);
if ($path_parts['basename'] == $page ) {
echo "class=\"aktiv\"";
}
}
Borius
Profil
web2000@seznam.cz:
3. řádek: funkci aktiv bych volal s parametrem, který potřebuji ke správnému porovnání. Tedy
$url="s-".$data['id_stranka']."_".$data['seo_stranka'].";
echo '<li', aktiv($url), "><h2><a href=\"{$url}\">{$data['nazev_stranka']}</a></h2></li>\n"; 
Samotnou funkci aktiv jsem jenom letmo přehlédl, měl bys doplnit mezeru na začátku vpisu:
echo " class=\"aktiv\""; 
Someone
Profil
Funkce by podle mě měla vypadat jinak:
function active($page) {
   $path_parts = pathinfo($_SERVER['SCRIPT_NAME']);
   if ($path_parts['basename'] == $page ) {
      return " class=\"aktiv\"";
   } 
}
web2000
Profil *
Someone:
Funkce opravdu potřebovala příkaz return pokud se použila proměnná $url, dále bylo třeba napsat místo SCRIPT_NAME, REDIRECT_URL pro získání správné adresy k porovnání aby to celé šlapalo.
Davex
Profil
Nejlépe by mělo posloužit $_SERVER['REQUEST_URI'].

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0