webForumDet fria alternativet

Rensa minnet med php

PHP

11 svar · 965 visningar · startad av J07

Medlem sedan maj 2007172 inlägg
Frågan#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..

Medlem sedan mars 20034 471 inlägg
#2

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

a:active {whatever}

:q

Medlem 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; }
Medlem 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.

Medlem 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å?

Medlem 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.

Medlem 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.

Medlem 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?

Medlem 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;
}
Medlem 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;
Medlem 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?

Medlem 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;
264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)