Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] aktiver menüpunkt markiert

Einklappen

Neue Werbung 2019

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

  • [Erledigt] aktiver menüpunkt markiert

    hallo zusammen,

    ich bin blutiger anfänger und stehe vor einem vermutlich läppischem problem, mangels skill.

    so, ich hab ein süsses kleines css menü, bei dem die aktive seite, bzw der aktive menüpunkt in der navigation durch

    Code:
    ul#minitabs a#current{border-color: #F60;color: #06F}
    markiert wird.

    die navigation an sich sieht in html ungefähr so aus:

    Code:
    <td height="60" colspan="2" valign="top"><ul id="minitabs">
     <li><a id="current" href="#">link1</a></li>
     <li><a href="#">link 2</a></li>
     <li><a href="#">link 3</a></li>
     <li><a href="#">link 4</a></li>
     <li><a href="#">link 5</a></li>
    .
    .
    usw
     </ul></td>
    durch id=current hebe ich den menüpunkt optisch hervor, wie vermutlich auch jeder von euch selbst sehen kann.

    so, da ich aber keine lust habe 1000 html seiten zu basteln wollte ich natürlich bis auf den header den weiteren content includen. den code dazu spare ich mir an dieser stelle, ich denke jeder der hier unterwegs ist weis wie so etwas funktioniert.

    das ganze sieht dann bei mir so aus:

    PHP-Code:
     switch($_GET['do'])
      {
        default: 
    $content="test.php";
        break;
        case 
    1$content="test.php";
        break;
        case 
    2$content="test2.php";
        break;
        case 
    3$content="test3.php";
        break;
      } 
    PHP-Code:
     
    <td height="60" colspan="2" valign="top"><ul id="minitabs">
    <li><?php echo "<a href=\"index.php?do=1\">link 1</a>"?></li>
    <li><?php echo "<a href=\"index.php?do=2\">link 3</a>"?></li>
    <li><?php echo "<a href=\"index.php?do=3\">link 3</a>"?></li>
    ..usw 
    </ul></td>
    ich hoffe das war einigermaßen verständlich.

    so, und jetzt die frage, wie baue ich das id="current" dynamisch und abhängig von der angezgeiten seite da ein um den aktiven menüpunkt hervorzuheben? kann mir da vielleicht jemand einen tip geben oder eine referenz zum nachlesen nennen?

    danke, lg

  • #2
    z.B. indem Du jeden Link mit einer if STruktur versiehst, die $_GET['do'] mit dem angebotenen Menüpunkt vergleicht. Ist nicht die schönste Lösung, aber naja.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      also quasi auf neudeutsch

      if $_GET['do'] == "1" dann gib id=current aus sonst leg dich gehackt.

      und das dann quasi in jeden menüpunkt mit rein. semantik richtig? ^^

      Kommentar


      • #4
        bis auf das du den sonst-teil weglassen kannst, ja

        Kommentar


        • #5
          jo hab ich auch weggelassen, danke euch

          Kommentar


          • #6
            funzt soweit aber eine frage hab ich dann doch noch.

            wenn ich jetzt die .php aufrufe werde ich ja durch default auf die seite 1 geschmissen. meine if anweisung fängt dieses aber nicht ab, da default keinen wert mitliefert. d.h. beim aufruf der seite ist der erste navipunkt nicht markiert.

            früher hab ich sowas ohne switch und mit vielen ifs gelöst und die seiten über nen redirect oder sowas aufgerufen wodurch ich gleich nen wert für die entsprechend zu includende datei mitsenden konnte. mein default sollte also ebenfalls fix den wert "1" haben, geht das?

            PHP-Code:
            switch($_GET['do'])
              {
                default: 
            $content="test.php";
                break;
                case 
            1$content="test.php";
                break;
                case 
            2$content="test2.php";
                break;
                case 
            3$content="test3.php";
                break;
              } 

            Kommentar


            • #7
              arbeite doch einfach nicht direkt mit der $_GET-Variablen:

              PHP-Code:
              if(isset($_GET["do"])
              {
                
              $page = (int)$_GET["do"];
              }
              else
              {
                
              $page 1;
              }

              switch(
              $page)
              // usw... 

              Kommentar


              • #8
                omg natürlich, ich muss mich erst wieder an die denkweise gewöhnen .

                vielen dank.

                Kommentar

                Lädt...
                X