| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

13-01-2012, 15:04
|
|
fritzje610
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Ort: Nahe der schönen Loreley
Beiträge: 311
|
|
zuletzt angeklickten Link in Session speichern
Hallo,
ich habe das Problem, dass ich für eine Auswertung immer den vom User zuletzt angeklickten Link in einer Sessionvariable speichern möchte, um diesen dann beim nächsten Aufruf mittels der css-Anweisung a:active entsprechend darzustellen.
Ich habe aber nicht den Hauch einer Idee, wie ich das speichern kann und bitte euch um Hilfe.
Vielen Dank ! ! !
__________________
Gruß
Michael
Geändert von fritzje610 (13-01-2012 um 15:24 Uhr)
|

13-01-2012, 15:22
|
|
chorn
Registrierter Benutzer
|
|
Registriert seit: Nov 2011
Beiträge: 41
|
|
$_SESSION['foo'] = $_SERVER['REQUEST_URI']
|

13-01-2012, 15:58
|
|
fritzje610
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Ort: Nahe der schönen Loreley
Beiträge: 311
|
|
Demzufolge müsste doch folgendes zutreffen:
Wenn ich nun in meiner index.php den angeklickten Link mit
PHP-Code:
$_SESSION['klick'] = $_SERVER['REQUEST_URI'];
speichere und dann in der navi.php folgenden Vergleich durchführe:
PHP-Code:
if($_SERVER['REQUEST_URI'] == $_SESSION['klick'])
{
echo "<div class='doc'><a href='index.php?ziel=anzeige&aufruf=1'>1</a></div>";
}
else
{
echo "<div class='doc'><a href='index.php?ziel=anzeige&aufruf=1' ></a></div>";
}
und die Kontrollausgabe von $_SERVER['REQUEST_URI']und $_SESSION['klick'] den gleichen Inhalt ergibt,
habe ich doch den aktiven Link ermittelt, sprich mein if ist wahr und somit sollte doch der Link mit diesem
css formiert werden:
Code:
.DynamicTree .doc a:active
{
color: #f00;
text-decoration: none;
background: #ff0000;
font-weight: bold;
margin-left: 18px;
}
oder nicht ?!?!?
Zumindest funktionert es nicht.
Das schlimme daran ist, ist versteh nicht, warum es nicht funktioniert.
Könntet ihr mir mal auf die Sprünge helfen ?!?!
Danke !
__________________
Gruß
Michael
|

13-01-2012, 16:08
|
|
chorn
Registrierter Benutzer
|
|
Registriert seit: Nov 2011
Beiträge: 41
|
|
Zunächst mal sollte die "1" als Link erscheinen. Formatiert wird der Link nur während du ihn anklickst
SELFHTML: Stylesheets / CSS-Eigenschaften / Pseudoelemente und Pseudoklassen
wobei
PHP-Code:
$_SESSION['klick'] = $_SERVER['REQUEST_URI'];
...
if($_SERVER['REQUEST_URI'] == $_SESSION['klick'])
immer zutrifft.
|

13-01-2012, 17:36
|
|
fritzje610
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Ort: Nahe der schönen Loreley
Beiträge: 311
|
|
Hmm, eigentlich richtig. Das a:active gilt nur im moment des Klicks. Blöd.
Wie kann ich den Eintrag im Menü so formatieren, dass er, wenn die entsprechende Seite angezeigt wird, gehighlightet ist?
Ich kann den div formatieren, aber dann wird auch das gif der Baumstruktur mit gehighlightet. Ich hätte aber gerne nur den Text gehighlightet.
Ich steh auf dem Schlauch !
__________________
Gruß
Michael
|

13-01-2012, 17:54
|
|
fritzje610
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Ort: Nahe der schönen Loreley
Beiträge: 311
|
|
So, wenn ich das css als span-Klasse definiere und in den Link einbaue funktioniert zwar das highlighten, aber es zerlegt mir die Baumstruktur.
Ich versteh aber nicht warum. Hier mal das gesamte css:
Code:
.DynamicTree {
/* font-family: georgia, tahoma;*/
font-size: 11px;
white-space: nowrap;
cursor: default;
float: left;
/* border: 1px solid #f00;*/
}
.DynamicTree .doc img,
.DynamicTree .folder img { border: 0; vertical-align: -4px; }
* html .DynamicTree .doc img,
* html .DynamicTree .folder img { border: 0; vertical-align: middle; vertical-align: -4px; }
.DynamicTree .section { background: url(images/tree-branch.gif) repeat-y; display: none; }
.DynamicTree .last { background: none; }
.DynamicTree .folder {font-weight: bold; }
.DynamicTree .folder .folder { margin-left: 18px; }
.DynamicTree .folder .folder .folder { margin-left: 18px; }
.DynamicTree .doc .doc, .DynamicTree .folder .doc { margin-left: 18px; font-weight: normal;}
.DynamicTree .doc a { color: #232323; text-decoration: none; }
.DynamicTree .doc a:hover { color: #232323; text-decoration: none; background: #7fff02; }
.DynamicTree .doc span
{
color: #0f0;
text-decoration: none;
background: #ff0000;
font-weight: bold;
margin-left: 18px;
}
.DynamicTree .folder a { color: #232323; text-decoration: none; }
.DynamicTree .folder a:hover { color: #232323; text-decoration: none; }
.DynamicTree .text { padding: 1px; }
.DynamicTree .text-active { background: #CEE3FF; padding: 1px; }
.DynamicTree .active { background: #CEE3FF; }
/* hack for IE to fix a bug (background of .section disappearing when mouse is over a link, for example Node 1.1.1.1) */
* html .DynamicTree .folder { position: relative; }
.DynamicTree img { border: 0; }
.DynamicTree .actions {
position: relative;
margin-top: 7px;
margin-left: 10px;
height: 20px;
}
.DynamicTree .tooltip {
position: absolute;
line-height: 22px;
left: 185px;
}
.DynamicTree .moveUp,
.DynamicTree .moveDown,
.DynamicTree .moveLeft,
.DynamicTree .moveRight,
.DynamicTree .insert,
.DynamicTree .info,
.DynamicTree .remove {
width: 20px;
height: 20px;
display: block;
position: absolute;
border: 1px solid #F1EFE2;
z-index: 5;
cursor: default;
}
.DynamicTree .moveUp:hover,
.DynamicTree .moveDown:hover,
.DynamicTree .moveLeft:hover,
.DynamicTree .moveRight:hover,
.DynamicTree .insert:hover,
.DynamicTree .info:hover,
.DynamicTree .remove:hover {
background-color: #ffffff;
border: 1px solid #ACA899;
}
.DynamicTree .moveUp { left: 0px; }
.DynamicTree .moveDown { left: 25px; }
.DynamicTree .moveLeft { left: 50px; }
.DynamicTree .moveRight { left: 75px; }
.DynamicTree .insert { left: 100px; }
.DynamicTree .info { left: 125px; }
.DynamicTree .remove { left: 150px; }
.DynamicTree .wrap { margin-left: 2px; }
.DynamicTree .top { background: url(images/tree.gif) no-repeat; padding-left: 25px; line-height: 20px; color: #333333; }
.DynamicTree .wrap1 { background: #ffffff; padding: 10px; border: 1px solid #919B9C; width: 250px; }
.DynamicTree .wrap2 { margin-left: 2px; }
.DynamicTree #tree-insert-form { display: none; margin-top: 1em; }
.DynamicTree #tree-insert-form .label { text-align: right; width: 50px; padding-right: 8px; }
.DynamicTree #tree-insert-form .input { margin-bottom: 2px; padding-left: 3px; }
.DynamicTree #tree-insert-form select { margin-bottom: 2px; }
.DynamicTree #tree-insert-form .button { margin-top: 4px; }
.DynamicTree #tree-info-form { display: none; margin-top: 1em; }
.DynamicTree #tree-info-form .label { text-align: right; width: 50px; padding-right: 8px; }
.DynamicTree #tree-info-form .input { margin-bottom: 2px; padding-left: 3px; }
.DynamicTree #tree-info-form select { margin-bottom: 2px; }
.DynamicTree #tree-info-form .button { margin-top: 4px; }
Zu diesem Menu gehört noch js. Braucht ihr das, um den Fehler zu finden.
Ich sitz jetzt seid heute morge an dem Problem und kriegs nicht hin.
Ihr seid meine letzte Hoffnung. Ansonsten muss ich die unschöne Variante wählen.
Danke ! ! !
__________________
Gruß
Michael
|

13-01-2012, 19:03
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Warum so kompliziert?
PHP-Code:
if($_SERVER['REQUEST_URI'] == $_SESSION['klick']) {
$class = ' class="aktiv"';
}
else {
$class = '';
}
echo '<div class="doc"><a href="index.php?ziel=anzeige&aufruf=1"'.$class.'">1</a></div>';
Code:
/* Dein CSS */
a.aktiv{...}
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

13-01-2012, 21:27
|
|
fritzje610
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Ort: Nahe der schönen Loreley
Beiträge: 311
|
|
Das haut nicht hin. Da muss ich mir was anderes überlegen.
Sobald ich da was a la span o.ä. einbaue bricht das Menü zusammen.
Die Icons werden nicht mehr angezeigt und das aus- und einklappen geht nicht mehr.
Jetzt ist guter Rat teuer.
__________________
Gruß
Michael
|

13-01-2012, 22:25
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
Sorry, aber das ist in meinen Augen Kinderkram. Ich persönlich glaube, dass dir schlichtweg die notwendigen CSS-Kenntnisse fehlen. Gibt es ein Online-Beispiel?
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

14-01-2012, 05:40
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Ich würde meinen FrontController/Router nach der aktuellen Route befragen.
Wozu Sessions?
Ich sehe keinen Nutzen, denn die Daten werden ja nur für "diesen" Requestzyklus benötigt.
http://scripts.ringsworld.com/documents/simpledoc-0.7.0
Ich glaube nicht, dass man dieses Gedöns aus 2004 verwenden sollte.
|

14-01-2012, 09:38
|
|
fritzje610
Registrierter Benutzer
|
|
Registriert seit: Mar 2004
Ort: Nahe der schönen Loreley
Beiträge: 311
|
|
@Kropff
Mag sein, das mir die nötigen Kenntnisse fehlen.
Hier findet man das Menu um das es geht.
Wie gesagt, hier soll, der jeweils angeklickte Link gehighlightet sein.
Die Seite wird bei jedem Klick auf einen Link aus diesem Menu neu geladen.
(das was in der Variable $akt drin steht ist der neu anzuzeigende Inhalt)
PHP-Code:
<?php
// Session starten
session_start();
#Konfiguration der Seitenüberschriften, Beschreibungen und Links laden
require_once("etc/config.php");
#Datenbank verbinden
require_once ($root . "/functions/db_connection.php");
#letzten Link speichern
$_SESSION['klick'] = $_SERVER['REQUEST_URI'];
#Definitionen wann welche GET-Variable als aktive Dateinamensübergabe dient
if(isset($_GET["ziel"]))
{
$akt = $_GET["ziel"];
}
else
{
$akt = "startseite";
}
#Head laden
require_once($root . "/includes/head.inc.php");
#Bodey laden
require_once($root . "/includes/body.inc.php");
#Navigationsmenu laden
require_once($root . "/includes/navi.inc.php");
#aktuellen Content laden
require_once($root . "/contents/" . $akt . ".php");
#Footer laden
require_once($root . "/includes/footer.inc.php");
?>
Any Ideas ?
__________________
Gruß
Michael
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|