• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bestimmte Links beim Laden makieren

Status
Für weitere Antworten geschlossen.

Geltos

Mitglied
Wie kann man es machen, dass wenn ich einen Menüpunkt auswähle und die Seite neu läd, dieser Menüpunkt mit einer anderen Farbe makiert ist, als die anderen Links im Menü?
 
Vorschlag

Du könntest hierfür PHP benutzten und in der URL dann immer mit Hilfe einer Variable bestimmen, auf welcher Seite du gerade bist und somit immer für den jeweiligen Menüpunkt andere Angaben zum Aussehen "schreiben" lassen.
Etwas anderes fällt mir auch grad nicht ein, sorry.
 
Hi,

also das kommt ganz drauf an was du machst und wie viel arbeit du infestieren möchtest.

Die einfachste Methode ist wohl mit Framesets oder besser mit nem iFrame zu arbeiten. Hier kannst du dann ganz einfach per JavaScript die Menüpunkte so manipulieren wie du es möchtest.

mfG
 
Hi Geltos

die sicherste Methode ist statt eines A-Tags den aktiven Menüpunkt als DIV oder SPAN durch PHP ausgeben zu lassen. Dieser wird dann einfach über CSS entsprechend formatiert.

Anschauen kannst du dir das z.B. auf meiner Seite. :wink:

Gruß
Hobbyuser
 
Das mit der URL habe ich mir auch schon gedacht, nur habe ich leider eine kostenlose Domain, da ändert sich die URL nicht...
Mit Frameset möchte ich nicht arbeiten, das schließt dann also auch A:active usw. aus.

Kann man es vielleicht irgendwie so machen, dass jede Seite eine Nummer hat, die man nicht sieht (auch nicht wenn man alles markiert) und dann mit PHP bestimmt, dass der Link 1 markiert ist, wenn die Seite die Nummer 1 irgendwo enthält?
 
Geltos schrieb:
Das mit der URL habe ich mir auch schon gedacht, nur habe ich leider eine kostenlose Domain, da ändert sich die URL nicht...

totaler blödsinn, die MUSS sich ändern, wenns auch nur die "originale" ist und nicht die .de.vu, da ja der server sonst nicht weißt, welches dokument er anzeigen muss.

Nils aka XraYSoLo
 
Also Geltos, im Prinzip reicht es in der eigentlichen Seite eine Variable zu setzen, die muss man nicht über die URL übergeben. Ich hab das bei mir so gelöst.

In der eigentlichen Seite wird angegeben ob und welcher Menüpunkt aktiv ist.
PHP:
<?php
	$aktiv = 1;
?>
In der eingebundenen Menü-Datei wird dann einfach die Variable abgefragt.
PHP:
<?php
	if ($aktiv == 1) { echo ("		<li class=\"m_akt\">Startseite</li>\n"); }
	else { echo ("		<li class=\"m_link\"><a href=\"http://www.hobbyuser.de/index.php\" accesskey=\"1\">Startseite</a></li>\n"); }
	if ($aktiv == 2) { ...
?>
Je nachdem wird entweder ein Link ausgegeben oder nicht. Die Formatierung folgt wie gesagt über CSS. :wink:
 
Stimmt, so ist es viel einfacher, dankeschön :)

EDIT: Jetz ist mir aufgefallen, dass die Seite mit der Variablen $aktiv erst viel weiter ungen eingefügt wird, als das Menü. Deshalb funktioniert das nicht....
 
Zuletzt bearbeitet von einem Moderator:
Es hat niemand gesagt, dass du das Beispiel 1 zu 1 übernehmen kannst. Jedoch weisst du doch schon ganz oben welche Seite aufgerufen wird, oder?

Somit sollte es auch kein Problem sein oben eine entsprechende Variable zu setzen. Um genaure Hilfe leisten zu können müsste ich den genauen Aufbau deiner Seite kennen. :roll:
 
Ich poste am besten mal den Quelltext:

PHP:
 <html>
<head>
<meta name="description" content="Exis, personal, Homepage">
<meta name="keywords" content="Patrick, Metzler, Metzi, Exis>
<meta name="copyright" content="Patrick Metzler">
<meta name="author" content="Metzi">
<title>Exis</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
window.status="Exis - Homepage"
// -->
</SCRIPT>
<link rel="icon" href="favicon.ico" type="image/ico">
<link rel="stylesheet" href="style.css" type="text/css">
</head> 
<body> 
<div class="box4"> 
<br>
<div align="center">
<img src="banner.jpg"> 
</div><!-- center -->   
<br> <div class="box5"> <div class="linkschrift"> 
<?php 
    if ($aktiv == 1) { echo ("<a href='index.php?site=start' class='aktiv'>¬ Startseite<br>"); } 
    else { echo ("<a href='index.php?site=start'>¬ Startseite</a><br>"); }
?>  
<a href="index.php?site=gb">¬ Gästebuch</a>
<br>
<a href="index.php?site=me">¬ About me</a>
<br>
<a href="index.php?site=kritik">¬ Kritik</a>
<br>
<a href="index.php?site=downloads">¬ Downloads</a>
<br>
<a href="index.php?site=links">¬ Links</a>
</div><!-- linkschrift --> </div><!-- box5 --> 
<div class="box6"> <table border="0">
<tr>
<td>
<div class="mitteschrift"> <?php
$whiteList = array(
    'start' => 'start.php',
    'gb' => 'gb.php',
    'me' => 'me.php',
    'kritik' => 'kritik/kritik.php',
    'downloads' => 'downloads.php',
    'links' => 'links.php'
);
if(array_key_exists('site', $_GET)) {
  if (array_key_exists($_GET['site'],$whiteList)) {
    include $whiteList[$_GET['site']];
  }
  else {
    include $whiteList['start'];
  }
}
else {
    include $whiteList['start'];
}
?> 
</div><!-- mittelschrift -->
</td>
</tr>
</table> </div><!-- box6 --> </div><!-- box4 --> 
</body>
</html>


also wie man jetzt hier sieht, wird die Seite über die URL eingefügt. Daher kann man es nicht vorher machen, oder?
 
Geltos schrieb:
also wie man jetzt hier sieht, wird die Seite über die URL eingefügt. Daher kann man es nicht vorher machen, oder?
Doch! :shock:

Du kannst die Abfrage direkt über die 'site' machen. Da du die Site kennst kannst du in der if-Abfrage die mit GET übergebene Variable prüfen und danach den Link entsprechend ausgeben. :wink:
 
Sorry, aber das habe ich jetzt nicht so ganz verstanden. Ich habe ja unten gar keine Direkte Variable, weil die Seite ja direkt eingebunden wird oder? Könntest du vielleicht meinen Code zitieren und die Variable nach oben stellen, wie du es geschrieben hast?
 
Leider ist mein PHP nicht so gut, ich habe da schon lange nichts mehr gemacht. Jedoch meine ich aus deinem Code zu erkennen, dass du über GET einen Wert erhälst.
PHP:
$_GET['site']
Nehmen wir an du setzt den Code der die Seite ermittelt ganz an den Anfang und speicherst die Seite in eine Variable also entweder:
PHP:
$site = $whiteList[$_GET['site']]
oder:
PHP:
$site = $whiteList['start']
Dann könntest du im Menü nach "$site" abfragen.
PHP:
<?php
if ($site == "start.php") { ... }
else { ... }
Es gibt sicher noch andere bessere Lösungen, um die sollen sich aber unsere PHP-Spezis kümmern. :wink:
 
Das geht leider nicht... ich bräuchte einen Code, womit ich in eine Variable speichern kann, wo ich gerade bin.
 
Geltos schrieb:
Das geht leider nicht...
Auch wenn man mein PHP als mieserabel bezeichnen kann, bin ich mir sicher, dass meine Lösung geht. :razz:

Da jedoch die Möglichkeit besteht, dass du Probleme hast die ich nicht erkenne, musst du dich wohl gedulden bin ein anderer User weiter hilft. Denn ich kann dir keine weiter Hilfe geben. :roll:
 
Wenn $site = $whiteList[$_GET['site']]; auch erst unten ist, kann es anscheint oben nicht ausgeführt werden. Es müsste in dem gleichen PHP Bereich
( <?php
....
?> )
sein, wie auch die if abfrage. Deshalb wäre es am besten, wenn ich oben eine Variable hätte, die die URL enthält, da die Seite auf der sich der Besucher im Moment befindet, an der URL angehängt ist.
 
Geltos schrieb:
Wenn $site = $whiteList[$_GET['site']]; auch erst unten ist,
Da frage ich mich ob du meine Antwort gelesen hast?
Hobbyuser schrieb:
Nehmen wir an du setzt den Code der die Seite ermittelt ganz an den Anfang
Du kannst die Seitenermittlung ganz oben in deiner Datei platzieren und machst unten nur das include. Vielleicht sollte man mal ein wenig flexibler denken und nicht immer nur in festen engen Rahmen. ;ugl
 
Entschuldigung, bin noch totaler Anfänger und verstehe das nicht so genau. Ich hab das jetzt ganz oft in vielen verschiedenen Variationen ausprobiert und es klappt einfach nicht :(

Wenn ich
PHP:
 <?php
$whiteList = array(
    'start' => 'start.php',
    'gb' => 'gb.php',
    'me' => 'me.php',
    'kritik' => 'kritik/kritik.php',
    'downloads' => 'downloads.php',
    'links' => 'links.php'
);
if(array_key_exists('site', $_GET)) {
  if (array_key_exists($_GET['site'],$whiteList)) {
    include $whiteList[$_GET['site']];
  }
  else {
    include $whiteList['start'];
  }
}
else {
    include $whiteList['start'];
} $site = $whiteList['start'] ; ?>

oben habe (ich hoffe dass es so ist, wie du meinst) dann ist auch schon der Text von der Seite oben.
 
Geltos schrieb:
ich hoffe dass es so ist, wie du meinst
Und wieder stelle ich fest meine Antworten werde nicht gelesen oder du verstehst es einfach nicht.
Hobbyuser schrieb:
Nehmen wir an du setzt den Code der die Seite ermittelt ganz an den Anfang und speicherst die Seite in eine Variable ...
Damit sollter der Code etwa so aussehen:
PHP:
<?php
$whiteList = array(
    'start' => 'start.php',
    'gb' => 'gb.php',
    'me' => 'me.php',
    'kritik' => 'kritik/kritik.php',
    'downloads' => 'downloads.php',
    'links' => 'links.php'
);
if(array_key_exists('site', $_GET)) {
  if (array_key_exists($_GET['site'],$whiteList)) {
    $site = $whiteList[$_GET['site']];
  }
  else {
    $site = $whiteList['start'];
  }
}
else {
    $site = $whiteList['start'];
}
?> 
<html>
<head>
<meta name="description" content="Exis, personal, Homepage">
<meta name="keywords" content="Patrick, Metzler, Metzi, Exis>
<meta name="copyright" content="Patrick Metzler">
<meta name="author" content="Metzi">
<title>Exis</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
window.status="Exis - Homepage"
// -->
</SCRIPT>
<link rel="icon" href="favicon.ico" type="image/ico">
<link rel="stylesheet" href="style.css" type="text/css">
</head> 
<body> 
<div class="box4"> 
<br>
<div align="center">
<img src="banner.jpg"> 
</div><!-- center -->   
<br> <div class="box5"> <div class="linkschrift"> 
<?php 
  if ($site == "start.php") { ... } 
  else { ... }
?>
<a href="index.php?site=gb">¬ Gästebuch</a>
<br>
<a href="index.php?site=me">¬ About me</a>
<br>
<a href="index.php?site=kritik">¬ Kritik</a>
<br>
<a href="index.php?site=downloads">¬ Downloads</a>
<br>
<a href="index.php?site=links">¬ Links</a>
</div><!-- linkschrift --> </div><!-- box5 --> 
<div class="box6"> <table border="0">
<tr>
<td>
<div class="mitteschrift"> <?php
include $site;
?>
</div><!-- mittelschrift -->
</td>
</tr>
</table> </div><!-- box6 --> </div><!-- box4 --> 
</body>
</html>
Ich hoffe du weißt jetzt was ich meine. :roll:
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben