zuletzt angeklickten Link in Session speichern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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 ! ! !
    Zuletzt geändert von fritzje610; 13.01.2012, 15:24.
    Gruß

    Michael

  • #2
    $_SESSION['foo'] = $_SERVER['REQUEST_URI']

    Kommentar


    • #3
      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&amp;aufruf=1'>1</a></div>";
      }
      else
      {
      echo 
      "<div class='doc'><a href='index.php?ziel=anzeige&amp;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

      Kommentar


      • #4
        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.

        Kommentar


        • #5
          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

          Kommentar


          • #6
            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

            Kommentar


            • #7
              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&amp;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

              Kommentar


              • #8
                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

                Kommentar


                • #9
                  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

                  Kommentar


                  • #10
                    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.
                    Wir werden alle sterben

                    Kommentar


                    • #11
                      @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

                      Kommentar

                      Lädt...
                      X