webForumDet fria alternativet

Rensa minnet med php

11 svar · 963 visningar · startad av J07

J07Medlem sedan maj 2007172 inlägg
#1

Finns det något sätt att med php rensa minet vid varje musklick?
Användbart eftersom jag vill kunna visa vilken länk som är aktiverad med visited i cssfilen. Som det är nu så blir alla besökta markerade..

aasahMedlem sedan mars 20034 471 inlägg
#2

Varför markerar du inte den aktiva länken med

a:active {whatever}

:q

TroxyMedlem sedan mars 20041 505 inlägg
#3

Detta har ingenting med PHP att göra.
Du ändrar utseende på besökta länkar med CSS, exempelvis såhär:

a:visited { color:red; }
The_HulkMedlem sedan juni 20031 837 inlägg
#4

PHP körs på servern och det är klienten som kommer ihåg vilka länkar som varit besökta.
Så svaret på din fråga är: Nej, det går inte med PHP.

J07Medlem sedan maj 2007172 inlägg
#5

Ok, jag har förklarat mig dåligt:
Det jag vill är att visa vilken länk som bvesöks just nu. Alltså om jag klickar på Länk2 så vill jag att länk2 ska vara understruken hela tiden när jag är inne på den och sen blir bara länk3 understruken när jag besöker den.
Med visited blir alla klickade länakr understrukna vilket blir fel och med active så blir den bara understruken i klickögonblicket...också fel. Så hur gör jag då?

Inte för att detta är tråden för javascript men kanske det är det enda sättet då?

XionMedlem sedan feb. 20081 inlägg
#6

Om du använder dig av t.ex get variabler för att visa sidorna skulle du kunna lägga en if sats som kollar vilken länk som är aktiv och sen bara lägga en egen css klass på den länken.

aasahMedlem sedan mars 20034 471 inlägg
#7

J07 skrev:

Ok, jag har förklarat mig dåligt:
Det jag vill är att visa vilken länk som bvesöks just nu. Alltså om jag klickar på Länk2 så vill jag att länk2 ska vara understruken hela tiden när jag är inne på den och sen blir bara länk3 understruken när jag besöker den.
Med visited blir alla klickade länakr understrukna vilket blir fel och med active så blir den bara understruken i klickögonblicket...också fel. Så hur gör jag då?

Inte för att detta är tråden för javascript men kanske det är det enda sättet då?

Hm... du kan ju ha en speciell CSS-klass för understuken länk som du tex kallar för .here . Låt PHP generera dina länkar på följande sätt:

if ($_SERVER[PHP_SELF] == $currentLink)
  $class = 'class="here" ';
else $class = '';
echo "<a $class href=\"$currentLink\">Look at me</a>";

Borde lösa problemet.

Om du har argument i URL:n som skiljer sidorna/länkarna från varann får du jämföra med

if ($_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'] == $currentLink)

... istället.

J07Medlem sedan maj 2007172 inlägg
#8

Fortfarande inte fått rätt på detta. Session kanske vore något, hur skulle det då se ut?

tantenMedlem sedan nov. 20051 596 inlägg
#9

Någonting liknande detta då om du har en listmeny?

<ul>
<?php
$current = basename($_SERVER['PHP_SELF']);
 
$links = array (
  'index.php' => 'hem',
  'sid2.php' => 'Sidan 2',
  'sid3.php' => 'Sidan 3',
  'lankar.php' => 'Länkar'
);
 
foreach ($links as $link => $text) {
   $id = $link == $current ? ' id="current"' : '';
   echo "<li><a$id href=\"$link\">$text</a></li>\n"; 
}
?>
</ul>

och har

#current{
text-decoration: underline;
}
J07Medlem sedan maj 2007172 inlägg
#10
<!---hur får jag detta att stämma överens med det under?---->
$current = basename($_SERVER['PHP_SELF']);

$links = array (
  'http://91.189.41.20/~u4524720/index.php' => 'Start',
  'index.php?option=com_wrapper&Itemid=48' => 'Till salu'
);

foreach ($links as $link => $text) {
   $id = $link == $current ? ' id="current"' : '';
   echo "<li><a$id href=\"$link\">$text</a></li>\n";
}

<!----till hit---->

		$links = array();
		foreach ($rows as $row) {
			$links[] = mosGetMenuLink( $row, 0, $params );
		}

		$menuclass = 'mainlevel'. $params->get( 'class_sfx' );
		if (count( $links )) {
			switch ($style) {
				case 1:
					echo '<ul id="'. $menuclass .'">';
					foreach ($links as $link) {
						echo '<li>' . $link . '</li>';
					}
					echo '</ul>';
					break;
tantenMedlem sedan nov. 20051 596 inlägg
#11

Jag förstår inte vad det är du vill göra... och vet inte om jag kan hjälpa dig...
Men hur är det meningen att menyn ska se ut i utskrift?

J07Medlem sedan maj 2007172 inlägg
#12

Koden (1) är den kod som finns inbyggt cms systemet jag använder. Koden (2) måste anpassas in i den för att det ska fungera, jag vet bara inte hur?

(2)

$current = basename($_SERVER['PHP_SELF']);

$links = array (
  'http://91.189.41.20/~u4524720/index.php' => 'Start',
  'index.php?option=com_wrapper&Itemid=48' => 'Till salu'
);

foreach ($links as $link => $text) {
   $id = $link == $current ? ' id="current"' : '';
   echo "<li><a$id href=\"$link\">$text</a></li>\n";
}

(1)

		$links = array();
		foreach ($rows as $row) {
			$links[] = mosGetMenuLink( $row, 0, $params );
		}

		$menuclass = 'mainlevel'. $params->get( 'class_sfx' );
		if (count( $links )) {
			switch ($style) {
				case 1:
					echo '<ul id="'. $menuclass .'">';
					foreach ($links as $link) {
						echo '<li>' . $link . '</li>';
					}
					echo '</ul>';
					break;
137 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)