webForumDet fria alternativet

Länkfärg med PHP

12 svar · 753 visningar · startad av annaica

annaicaMedlem sedan maj 200753 inlägg
#1

Har en meny på en sida där jag med hjälp av PHP reglerar vilken sida som skall visas när man klickar på länken.

Men nu vidare till den verkliga frågan; när man klickat på länken i menyn vill jag att den skall behålla den hover-färgen som jag gett den, som en markering att det är den sidan man är inne på.

Finns det något smidigt sätt att göra det på med PHP? Genom if-sats...?

TulorkMedlem sedan aug. 2004903 inlägg
#2

kan du väl göra med vanlig css och html? Fast jag tror bara det funkar i IE... inte säker...

Hur som helst så går det väl att lösa med if-satser. Skicka med ytterligare ett värde med länken som t ex ser ut så här filen.php?active=1

Sen kontrollerar du varje länk med en if-sats, om active=1 använder du en style, om den är något annat än 1 använder du standard... alternativet är väl java, vilket även borde kunna lösa detta.

EDIT*

Finns väl ett smidigare sätt med PHP som jag precis kom på.. skapa två stycken olika färgalternativ till länkarna.. en som är för standard och en som byter färgen... använd sedan en variabel som innehåller namnet på den class som sätter standardfärgerna... På varje länk så sätter du class="<?php echo $variablen; ?>", detta innebär att alla länkar kommer få standardfärgval.

Efter detta så fixar du så att alla länkar skickar med get variablen active som default är 1... sedan skapar du en ifsats som kolla en variablen..

if($_GET[active] == 1){ $variabel = "första färgvalet"; }
if$_GET['active'] !==1 { $variabel = "andra färgvalet"; }

Vet inte om det är så lätt att förstå hur jag menade :)

silfverMedlem sedan apr. 200312 679 inlägg
#3

Jag har löst det så här:

Meny:
<a href="hej.php" <?=$hej;?>>
hej.php:
<?
$hej = 'id=active';
?>

Och i min css har jag ett id som gör a#active till valfri färg.

annaicaMedlem sedan maj 200753 inlägg
#4

Jag förstår... hyffsat bra vad du menar! Skall ta och testa i alla fall! :D

annaicaMedlem sedan maj 200753 inlägg
#5

silfver skrev:

Jag har löst det så här:

Meny:
<a href="hej.php" <?=$hej;?>>
hej.php:
<?
$hej = 'id=active';
?>

Och i min css har jag ett id som gör a#active till valfri färg.

Hur fattar koden att länken är aktiv...? ^

silfverMedlem sedan apr. 200312 679 inlägg
#6

När man klickar sig in på sidan hej.php så har du i php-filen variablen $hej längst upp som säger ersätter <a href="hej.php" <?=$hej;?>> med <a href="hej.php" id="active">

Så då kan du i din css-fil säga att a#active ska vara t.ex. color: red; eller liknande.

Kanske inte den mest optimala lösningen, men jag tycker den är ganska enkel till mindre projekt.

annaicaMedlem sedan maj 200753 inlägg
#7

Nu har jag tagit mig tid att prova detta... och det funkar inte. Inget skrivs ut om jag har vad variabeln betyder i ett annat .php dokument än där jag anropar det.

Jag har skrivit följande i min index.php;

<a href="?page=fotograf" onfocus="this.blur();" <?php echo $aktiv;?>>fotograf</a>

i min fotograf.php har jag skrivit detta;

<?php
$aktiv = 'id="active"';
?>

Men det gör ingen skillnad... det som jag skrivit in i fotograf.php, har jag med det i index.php så funkar det dock... men då ligger ju det kvar hela tiden.

Vad gör jag för fel?

silfverMedlem sedan apr. 200312 679 inlägg
#8

Ligger din sistnämda kod över all annan kod i fotograf.php?

silfverMedlem sedan apr. 200312 679 inlägg
#9

silfver skrev:

Ligger din sistnämda kod över all annan kod i fotograf.php?

Hur ser din html-kod ut som sidan fotograf.php genererar? Visa oss den också, så ser vi ifall det fungerar.

Ops, nu citerade jag mig själv i stället för att redigera mitt inlägg. Sorry.

annaicaMedlem sedan maj 200753 inlägg
#10
<?php
$aktiv = 'id="active"';
?>

ligger allra överst i fotograf.php

min echo skriver inte ut nånting alls... förutom om jag har den i index.php, men då ligger ju förändringen där hela tiden som sagt.

Du får gärna kolla; http://udavinn.se

silfverMedlem sedan apr. 200312 679 inlägg
#11

Ungefär så här gör jag en enklare sida i php:

header.php:

<html>
<head>
...
</head>
<body>
<a href="fotograf.php" <?=$aktiv;?>>länk</a>
...

fotograf.php:

<?php
$aktiv = 'id="active"';
include = "header.php";
?>

<div>...</div>

<?php
include = "footer.php";
?>
...

footer.php

...
</body>
</html

Fungerar det inte när du gör så så kan jag tyvärr inte hjälpa dig. Men jag är säker på att någon annan kan ta över! :bire

annaicaMedlem sedan maj 200753 inlägg
#12

jag skall prova att göra en header.php sida och se om det blir annorlunda!

annaicaMedlem sedan maj 200753 inlägg
#13

Humma... nu när jag tänkte testa insåg jag att jag måste bygga om sidan helt om jag skall kunna använda det där... i alla fall på exakt samma sätt.

Men jag förstår inte riktigt vad det är för skillnad på det jag gör, och de du gör. Jag har en index.php där, beroende på vilken länk man klickar på, det infogas en sida;

<a href="?page=fotograf" onfocus="this.blur();" <?php echo $aktiv;?>>fotograf</a>

if ($_GET["page"] == fotograf) require("fotograf/fotograf.php");

Jag tycker att det borde funka på samma sätt som en include, men det gör det uppenbarligen inte då variabeln jag har med i fotograf.php inte skrivs ut i index.php även om jag lagt in en echo där.

137 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)