WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Menyknappar ska vara markerade..... (https://www.wn.se/forum/showthread.php?t=9301)

ashur 2005-08-11 01:31

Jag har nu menyknappar i css, men nu vill jag få dit en funktion så att knapparna ska vara samma färg som vid "hover". http://www.videohelp.se
tex. när jag trycker på knappen "kontakta mig" så vill jag att knappen kontakta mig ska vara markerad. Samma sak för de andra.

Jag tänkte göra detta i css, men jag använder endast en sida där jag anropar de andra med php. Så då går inte css?

tack på förhand.

mattias_d 2005-08-17 17:45

Jag är inte säker på att jag förstår vad du vill göra? Vill du att en meny ska vara markerad när du valt den?

Förklara gärna lite mer detaljerat.

// Mattias


-----
http://www.mdsolutions.se

herkules 2005-08-18 00:44

Du får helt enkel skriva ut en style eller en class på aktuell meny/länk t.ex:

<ul>[*]Hem DÄR MAN ÄR JUST NU[*]Guider VANLIG LÄNK
[/list]
!important används för att tvinga på en egenskap

Fick du svar?

Westman 2005-08-18 07:30

Herkules, kan man ange !important med javascript?

festiz 2005-08-18 09:12

Jag skriver oftast ut mina menyer dynamiskt, då blir det mycket enklare. för då kan du jämföra $_GET['sida'] med länken för det menyentry du skriver ut för tillfället, skulle de vara samma så skriver du ut en class="aktivklass" som du sen definierar i stylesheetet..

Sen måste jag påpeka en grammatisk korrigering som bör genomföras. På "kontakta mig" så har du en notering:
Citat:

Originally posted by www.videohelp.se/index.php?sida=kontakta+--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE (www.videohelp.se/index.php?sida=kontakta)Notering: Emailadress som du skickar med kommer hållas hemliga.[/b]

Eftersom "Emailadress" står i singular bör även "hemliga" stå i singular, dessutom så anser jag att du pratar om en e-postadress i ett speciellt fält så "Emailadress" bör vara bestämd form singular. Så då borde det bli:
<!--QuoteBegin--Mitt förslag

Notering: Emailadressen som du skickar med kommer hållas hemlig.[/quote]

herkules 2005-08-18 10:42

Visst kan du skriva ut det med javascript. Men det är onödigt om du redan använder PHP.

ashur 2005-08-19 15:43

Citat:

Jag skriver oftast ut mina menyer dynamiskt, då blir det mycket enklare. för då kan du jämföra $_GET['sida'] med länken för det menyentry du skriver ut för tillfället...
Det där är nog det jag menade, har du några kodexempel som jag kan använda mig utav?

ang. grammatiken. Tack för hjälpen =). Tänkte inte på detta förut och efter att ha läst ditt förslag så låter det bättre och nu har jag ändrat det.


herkules, jag använder endast en sida där jag anropar sidorna med php. Så jag tror inte det som du menar fungerar. Jag måste nog använda mig utav php-kod.

mattias_d, när du tryckt på länken "kontakta mig" tex. så kommer sidan upp, men jag vill att knappen "kontakta mig" ska också vara aktiverad. Hoppas att du förstod vad jag menade.

herkules 2005-08-19 21:44

Du måste ändå använda dig av css.
gör så här:

if($_GET['sida'] == 'kontakta'){
echo 'Kontakta mig';
}else{
echo 'Kontakta mig';
}

ashur 2005-08-19 23:02

ok, nu börjar jag förstå. Men en sak till det är så att med den koden som du visade nu så bildas det en ny länk. Jag vill använda mig utav samma färg som vid "hover" över knappen, dvs. mörkgul på knappen.

är inte riktig bra på php, men hur kan jag använda den koden som du beskrev i denna kod som jag använder?

<?
if(isset($_GET['sida'])) //Kollar om variabeln $sida i adressfältet är satt.
{
$sida=$_GET['sida']; //Om så är fallet - kör med den!
}else{
$sida="main"; //namnet på din startsida utan ".php"
}
$file="pages/$sida.php"; // Hämtar
if(file_exists($file)) //Kontrollerar om filen existerar.
{
if(!include($file)) //Om filen existerar går vi hit och försöker inkludera den.
{
echo "Sidan du vill gå till kan inte inkluderas"; //Om den inte gick att inkludera men finns så kastas detta error (oftast rättighetsproblem)
}
}else{
echo "Sidan du vill gå till kan inte hittas"; //Om filen som du vill inkludera inte finns kastas detta error. (ingen fysisk fil)
}

?>

herkules 2005-08-20 02:19

Den där koden går inte att använda, du måste göra en ny. Det du gör nu är att du inkluderar respektive sida. Du måste göra menyn dynamisk. Du får göra menyn till en egen include fil.
Jag återkommer senare med kod exempel, är lite upptagen just nu :)

ashur 2005-08-21 10:28

Citat:

Originally posted by herkules@Aug 19 2005, 21:44
Du måste ändå använda dig av css.
gör så här:

if($_GET['sida'] == 'kontakta'){
echo 'Kontakta mig';
}else{
echo 'Kontakta mig';
}

tack för hjälpen nu fungerar det. :D

Men det fungerar inte när jag trycker på hem och forum?
Länken till hem så använder jag mig utav min adress och på forumet så använder jag mig utav
Kod:

<a href="./phpBB2/" target="_blank">
index resp. forum sidan så har jag dessa i en annan katalog. Resterande filer har jag i katalogen "pages".

Vet du hur jag kan fixa detta?

herkules 2005-08-25 14:49

Här kommer koden som jag lovade, sorry att det dröjde så länge, hade en massa annat för mig.
Eftersom Forumet öppnas i ett nytt fönster så är det lite ologiskt/onödigt att den ska bli "active", besökaren kommer ändå inte se din sida när han är inne på forumet.
Kod:

<div id="nav">
        <ul>
        <?php
 *if(isset($_GET['sida'])){
 *        $sida = $_GET['sida'];
 *}else{
 *        $sida = '';
 *}
 *
 *if($sida == ''){
 * *echo '<li class="active"><a href="http://www.videohelp.se/">Hem</a></li>'."\n";
 *        }else{
 * *echo '<li><a href="http://www.videohelp.se/">Hem</a></li>'."\n";
 *        }
 *if($sida == 'guide'){
 *        echo '<li class="active"><a href="index.php?sida=guide">Guider</a></li>'."\n";
 *}else{
 *        echo '<li><a href="index.php?sida=guide">Guider</a></li>'."\n";
 *}
 *if($sida == 'program'){
 * *echo '<li class="active"><a href="index.php?sida=program">Program/codecs</a></li>'."\n";
 *        }else{
 * *echo '<li><a href="index.php?sida=program">Program/codecs</a></li>'."\n";
 *        }
 *if($sida == 'kontakta'){
 * *echo '<li class="active"><a href="index.php?sida=kontakta">Kontakta mig</a></li>'."\n";
 *        }else{
 * *echo '<li><a href="index.php?sida=kontakta">Kontakta mig</a></li>'."\n";
 *        }
       
        ?>
 *<li><a href="./phpBB2/" target="_blank">Forum</a></li>
        </ul>
</div>


ashur 2005-08-26 00:02

tack för hjälpen hercules, den fungerar fint nu. :D
Det är sant som du säger ang. forum knappen, lite onödigt att den ska vara markerad.

Sedan har jag bara en väldigt snabb fråga, om jag ska göra "underkategorier" till resp. del, hur kan dessa knappar fortfarande vara markerade? (exempel se guider och klicka på en länk, den markerade knappen försvinner).
Det måste finnas nån kod som säger !"If" guide och guider visas "then" markera knappen guide.

herkules 2005-08-26 08:34

Lägg menyn som en egen include fil. Förstår du vad jag menar med include?

include "meny.php";

ashur 2005-08-26 19:24

jag har menyn (koden som du beskrev) som en include fil (<?php include("pages/nav.php"); ?>) i index.php filen.

herkules 2005-08-26 22:18

Hur gör du när du skriver ut innehållet på sidan, t.ex. vad händer när jag trycker på Guider - DivX/XviD till DVD?

För har du gjort rätt, så ska det inte spela någon roll, bara sida="guide" finns med så ska menyn vara markerad..

[EDIT] jag har hittat felet :P Ska bara komma på en lösning

herkules 2005-08-26 22:21

varför använder du sida=guider#divx ?? Alltså varför #divx? Har du anchors någonstans?

ashur 2005-08-27 14:22

Så här har jag på den länkenDivX/XviD till DVD.
Det är alltså en "anchor" (som du sa) till ny sida (guider.php och i den så finns det <a name="divx"> för att komma till den delen.) Har gjort så med resterande länkar på guide.php, för att jag visste inte hur jag skulle få samma information på samma sida med php utan körde html.

herkules 2005-08-27 15:35

ahaa, I see! Lite krångligt... då får man använda sig av regxp. Ska se om jag kan göra scriptet.

herkules 2005-09-15 10:43

Här kommer den nya koden

Kod:

<div id="nav">
<ul>
<?php

 if(isset($_GET['sida'])){
 $sida = $_GET['sida'];

// regXP
$pattern = '/(.*?)#/';
preg_match($pattern, $sida, $matches);
print $matches[1];


 }else{
 $sida = '';
 }
 
 if($sida == ''){
  echo '<li class="active"><a href="http://www.videohelp.se/">Hem</a></li>'."\n";
 }else{
  echo '<li><a href="http://www.videohelp.se/">Hem</a></li>'."\n";
 }
 if($sida == 'guide'){
 echo '<li class="active"><a href="index.php?sida=guide">Guider</a></li>'."\n";
 }else{
 echo '<li><a href="index.php?sida=guide">Guider</a></li>'."\n";
 }
 if($sida == 'program'){
  echo '<li class="active"><a href="index.php?sida=program">Program/codecs</a></li>'."\n";
 }else{
  echo '<li><a href="index.php?sida=program">Program/codecs</a></li>'."\n";
 }
 if($sida == 'kontakta'){
  echo '<li class="active"><a href="index.php?sida=kontakta">Kontakta mig</a></li>'."\n";
 }else{
  echo '<li><a href="index.php?sida=kontakta">Kontakta mig</a></li>'."\n";
 }

?>
 <li><a href="./phpBB2/" target="_blank">Forum</a></li>
</ul>
</div>


Starweb 2005-09-15 12:33

Citat:

Originally posted by herkules@Sep 15 2005, 09:43
Här kommer den nya koden
Ryser till när jag ser den koden... Varför inte göra en array + en forward loop istället? Och/eller iallafall en case-sats?

ashur 2005-09-15 17:40

tack för koden. :D
Ska jag göra något speciellt på mina länkar som jag har nu? för att knappen ska vara markerad. om jag tar bort "anchors" så kommer jag inte till titeln.

Starweb, hur fungerar din kod då? dvs. är det lättare att infoga osv.

Jonas 2005-09-16 02:36

Kod:

<div id="nav">
<ul>
<?php

if(isset($_GET['sida']))
{
        $sida = $_GET['sida'];
        // regXP
        $pattern = '/(.*?)#/';
        preg_match($pattern, $sida, $matches);
        print $matches[1];
}
else
{
 $sida = '';
}

$pages = array('Hem' => 'http://www.videohelp.se/?sida=hem', 'Guider' => 'index.php?sida=guider', 'Program' => 'index.php?sida=program', 'Kontakta' => 'index.php?sida=kontakta');

        while (list($page, $url) = each($pages))
        {
 if($page == $sida) $add = ' class="active"';
 else $add = '';

 echo '<li'.$add.'><a href="'.$url.'">'.$page.'</a></li>'."\n";
        }
?>
 <li><a href="./phpBB2/" target="_blank">Forum</a></li>
</ul>
</div>

Kanske en något snabbare och mer "dynamisk" variant.
Och mer lätt administrerad.

Var det något sådant här du Starweb hade i tankarna?

herkules 2005-09-16 10:54

joo, min lösning är väl inte den kortaste, orkade bara inte göra om den :)
För övrigt så är inte case sats heller en bra lösning!

herkules 2005-09-17 10:36

Citat:

Originally posted by ashur@Sep 15 2005, 17:40
tack för koden.
Ska jag göra något speciellt på mina länkar som jag har nu? för att knappen ska vara markerad. om jag tar bort anchors så kommer jag inte till titeln.
Starweb, hur fungerar din kod då? dvs. är det lättare att infoga osv.


Du behöver inte göra något speciellt, lägg bara in koden där förra koden var!

ashur 2005-09-17 11:29

Citat:

Originally posted by herkules@Sep 17 2005, 10:36
Du behöver inte göra något speciellt, lägg bara in koden där förra koden var!

Nu börjar jag förstå hur denna php fungerar. :D
Men vad jag tänkte på är att jag använder två php, guide.php (som innehåller länkarna) och guider.php (som innehåller texterna).
Om jag förstår det rätt så kommer inte denna kod att fungera på sidan guider.php p.g.a "r" extra?

dvs. i koden så finns endast guide.php utskriven och ska visa sidan efter eventuella "markering" som #, ? osv... Tex. guide.php#divx.


Jonas, den koden som du beskrev gör inte så att knapparna blir markerade efter att man tryckt.

herkules 2005-09-18 02:47

Citat:

Originally posted by ashur@Sep 17 2005, 11:29

Nu börjar jag förstå hur denna php fungerar. :D
Men vad jag tänkte på är att jag använder två php, guide.php (som innehåller länkarna) och guider.php (som innehåller texterna).
Om jag förstår det rätt så kommer inte denna kod att fungera på sidan guider.php p.g.a "r" extra?

dvs. i koden så finns endast guide.php utskriven och ska visa sidan efter eventuella "markering" som #, ? osv... Tex. guide.php#divx.

Prova med den här:
Kod:

<div id="nav">
<ul>
<?php

if(isset($_GET['sida'])){
 $sida = $_GET['sida'];

// regXP
$pattern = '/(.*?)#/';
preg_match($pattern, $sida, $matches);
print $matches[1];


}else{
 $sida = '';
}

if($sida == ''){
 echo '<li class="active"><a href="http://www.videohelp.se/">Hem</a></li>'."\n";
 }else{
 echo '<li><a href="http://www.videohelp.se/">Hem</a></li>'."\n";
 }
if($sida == 'guide'){
 echo '<li class="active"><a href="index.php?sida=guide">Guider</a></li>'."\n";
}else{
 echo '<li><a href="index.php?sida=guide">Guider</a></li>'."\n";
}
if($sida == 'guider'){
 echo '<li class="active"><a href="index.php?sida=guide">Guider</a></li>'."\n";
}else{
 echo '<li><a href="index.php?sida=guide">Guider</a></li>'."\n";
}
if($sida == 'program'){
 echo '<li class="active"><a href="index.php?sida=program">Program/codecs</a></li>'."\n";
 }else{
 echo '<li><a href="index.php?sida=program">Program/codecs</a></li>'."\n";
 }
if($sida == 'kontakta'){
 echo '<li class="active"><a href="index.php?sida=kontakta">Kontakta mig</a></li>'."\n";
 }else{
 echo '<li><a href="index.php?sida=kontakta">Kontakta mig</a></li>'."\n";
 }

?>
<li><a href="./phpBB2/" target="_blank">Forum</a></li>
</ul>
</div>


ashur 2005-09-18 11:44

Nu blir det 2 knappar av Guider-menyknapp, om man trycker på länkarna som finns på guide.php.
Men det är på rätt väg. ;)

Går det inte få dit en funktion som tex. "om guide eller guider är markerad" så markera guider knappen.
tex.
Kod:

if($sida == 'guide' eller 'guider'){
echo '<li class="active"><a href="index.php?sida=guide">Guider</a></li>'."\n";
}else{
echo '<li><a href="index.php?sida=guide">Guider</a></li>'."\n";
}


herkules 2005-09-18 12:00

Citat:

<div id="nav">
<ul>
<?php

if(isset($_GET['sida'])){
$sida = $_GET['sida'];

// regXP
$pattern = '/(.*?)#/';
preg_match($pattern, $sida, $matches);
print $matches[1];


}else{
$sida = '';
}

if($sida == ''){
echo '<li class="active">Hem'."\n";
}else{
echo '[*]Hem'."\n";
}
if($sida == 'guide' or $sida == 'guider'){
echo '<li class="active">Guider'."\n";
}else{
echo '[*]Guider'."\n";
}

if($sida == 'program'){
echo '<li class="active">Program/codecs'."\n";
}else{
echo '[*]Program/codecs'."\n";
}
if($sida == 'kontakta'){
echo '<li class="active">Kontakta mig'."\n";
}else{
echo '[*]Kontakta mig'."\n";
}

?>[*]Forum[/list]</div>


ashur 2005-09-18 22:44

Nu fungerar den. Tack för all hjälp du lagt ner för att hjälpa mig herkules.
Väldigt snällt av dig.

herkules 2005-09-19 11:53

Citat:

Originally posted by ashur@Sep 18 2005, 22:44
Nu fungerar den. Tack för all hjälp du lagt ner för att hjälpa mig herkules.
Väldigt snällt av dig.

lugnt!


Alla tider är GMT +2. Klockan är nu 08:37.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson