aktiver Link gestalten

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

  • aktiver Link gestalten

    Hallo, dieses Aufklappmenü includiere ich in die Dateien zu denen Verlinkt wird. Nun will ich dass die aktiven Menüpunkte per CSS eine andere Farbe bekommen.
    Meine Idee mit
    PHP-Code:
    <?php $thisPage ="menu1";?>
    die menu1.php zu kennzeichnen (und alle weiteren Dateien ebenfalls mit dem entsprechenden Link-Name zu versehen).
    Dazu müsste nun in der navi.php die Anweisung rein, dass wenn
    PHP-Code:
    $thisPage =="menu1" 
    dann gebe die entsprechende css für den Menüpunkt aus.

    Kann es so gehen, wie ich es formuliert habe?
    Danke für Hilfe.
    Maggie


    navi.php
    PHP-Code:
    <!-- menue ohne untermenue --> 
    <dl class="menu">
    <dt>
    <?php echo '<a href="menu1.php?x=1">menu1</a>';?></dt>
    </dl>
    <!-- menue mit untermenues --> 
    <dl class="menu">
    <dt>
    <?php echo '<a href="menue2a.php?x=2">menue2</a>';?> 
    </dt>
    <?php
        
    if(intval($_GET["x"]) == 2)
    {
          echo 
    '<dd>
                <a href="menue2a.php?x=2">menue2a</a>
                <a href="menue2b.php?x=2">menue2b</a>
                <a href="menue2c.php?x=2">menue2c</a>
                </dd>'
    ;
        }
    ?>  
    </dl>

  • #2
    Zitat von mmnet Beitrag anzeigen
    Kann es so gehen, wie ich es formuliert habe?
    Prinzipiell schon, aber man könnte es auch direkt über $_SERVER["SCRIPT_NAME"] vergleichen, weil das weniger Wartungsaufwand mit sich bringt.
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Zitat von AmicaNoctis Beitrag anzeigen
      Prinzipiell schon, aber man könnte es auch direkt über $_SERVER["SCRIPT_NAME"] vergleichen, weil das weniger Wartungsaufwand mit sich bringt.
      hm,
      $scriptname= und da weiß ich nicht was rein muss
      $_SERVER["SCRIPT_NAME"]

      <?php if($scriptname=="[COLOR=#000000][COLOR=#CC0000]menu1.php?x=1[/COLOR][/COLOR]") {
      [COLOR=#000000][COLOR=#0000CC]<?php [/COLOR][COLOR=#006600]echo [/COLOR][COLOR=#CC0000]'[/COLOR][/COLOR]<dt class="aktiv">[COLOR=#000000][COLOR=#CC0000]
      <a href="menu1.php?x=1">menu1</a>[/COLOR][/COLOR][COLOR=#000000]</dt>[/COLOR][COLOR=#000000][COLOR=#CC0000]'[/COLOR][COLOR=#006600];[/COLOR][COLOR=#0000CC]?>[/COLOR][/COLOR]
      }?>


      [COLOR=#000000]
      [COLOR=#0000CC][/COLOR][/COLOR]

      Kommentar


      • #4
        PHP-Blöcke können nicht verschachtelt werden. ("<?php" innerhalb von "<?php" geht nicht)

        Wenn du den letzten Kommentar nicht verstanden hast, bleib erstmal bei deiner Idee. Ich wollte dich nicht verwirren, will dir jetzt aber auch nicht umständlich erklären, wie ich es machen würde.
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Okay, ich taste mich mal langsam vor.

          Bestehende Ausgabe:
          PHP-Code:
          <!-- menue ohne untermenue --> 
          <dl class="menu">
          <dt>
          <?php echo '<a href="menu1.php?x=1">menu1</a>';?></dt>
          </dl>
          Nun die Kombination mit der if Abfrage:
          PHP-Code:
          <?php
              
          if $thisPage == menu1)
          {
                echo 
          '<dt class="aktiv">
                      <a href="menu1.php?x=1">menu1</a>
                      </dt>'
          ;
              }
          ?>
          Wenn nun die Untermenüs aufklappen - da weiß ich nicht wie ich '$thisPage einfügen muss, kann mir da jemand helfen?

          PHP-Code:
          <!-- menue mit untermenues --> 
          <dl class="menu">
          <dt>
          <?php echo '<a href="menue2a.php?x=2">menue2</a>';?> 
          </dt>
          <?php
              
          if(intval($_GET["x"]) == 2)
          {
                echo 
          '<dd>
                      <a href="menue2a.php?x=2">menue2a</a>
                      <a href="menue2b.php?x=2">menue2b</a>
                      <a href="menue2c.php?x=2">menue2c</a>
                      </dd>'
          ;
              }
          ?>  
          </dl>

          Kommentar


          • #6


            PHP-Code:
             <?php
                
            if $thisPage == menu1)
            {
                  echo 
            '<dt class="aktiv">
                        <a href="menu1.php?x=1">menu1</a>
                        </dt>'
            ;
                }
            ?>
            Dieser Versuch scheitert schon - es wird nichts mehr angezeigt.

            Gruß
            Maggie

            Kommentar


            • #7
              Zitat von mmnet Beitrag anzeigen
              Dieser Versuch scheitert schon - es wird nichts mehr angezeigt.
              Sollte aber, nämlich ein parse error. Unterdrückst du Fehlermeldungen? Es fehlt die linke Klammer beim if.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Zitat von AmicaNoctis Beitrag anzeigen
                Sollte aber, nämlich ein parse error. Unterdrückst du Fehlermeldungen? Es fehlt die linke Klammer beim if.
                Danke! Die Klammer habe ich jetzt eingefügt, aber das selbe - die navi.php wird nicht mehr eingebunden und alle weiteren 'include' Positionen auch nicht.

                Was muss ich denn tun, damit ich die Fehlermeldungen bekommen?

                Kommentar


                • #9
                  Zitat von mmnet Beitrag anzeigen
                  Was muss ich denn tun, damit ich die Fehlermeldungen bekommen?
                  Das steht hier: PHP script resource - Ankündigungen im Forum : PHP Developer Forum
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Danke!
                    Nun bekomme ich diese Meldung:
                    Parse error: syntax error, unexpected T_STRING in der linie 3

                    Die Anführungszeichen ' muss ich doch setzen da eine html Ausgabe innerhalb von PHP erfolgt, oder?
                    PHP-Code:
                    <?php
                        
                    if ($thisPage == bueroprofil)
                    echo 
                    '<dt class="aktiv">
                                <a href="buero.php?x=1">bueroprofil</a>
                                </dt>'
                    ;  
                    ?>

                    Kommentar


                    • #11
                      Ich vermute mal, es geht um die fehlenden Anführungszeichen um bueroprofil in der if-Abfrage. Warum der Zeile 3 statt 2 ausspuckt, kann ich dir grad auch nicht sagen, aber vermutlich ist es wirklich Zeile 3 und du hast den Code hier nur anders reinkopiert.
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Zitat von AmicaNoctis Beitrag anzeigen
                        Ich vermute mal, es geht um die fehlenden Anführungszeichen um bueroprofil in der if-Abfrage. Warum der Zeile 3 statt 2 ausspuckt, kann ich dir grad auch nicht sagen, aber vermutlich ist es wirklich Zeile 3 und du hast den Code hier nur anders reinkopiert.
                        ja, die " " bei bueroprofil fehlten auch!

                        Parse error: syntax error, unexpected T_STRING in /var/www/usw. on line 11
                        [COLOR=Red]line 11 ist die echo usw.[/COLOR]

                        <?php
                        if($thisPage=="bueroprofil")
                        echo '<dt class="aktiv">
                        <a href="buero.php?x=1">bueroprofil</a>
                        </dt>';
                        ?>

                        Kommentar


                        • #13
                          Juhu, einen Schritt weiter.

                          Wenn ich die Zuordnung der Kasse bei <dt> weglasse, wird kein Fehler mehr gezeigt. Aber das entscheidente ist die Zuordnung eines speziellen StyleSheets, damit der Link gestaltet werden kann.


                          PHP-Code:
                          <dl class="menu"> 
                          <?php
                              
                          if($thisPage=="bueroprofil")
                              echo 
                          '<dt><a href="buero.php?x=1">bueroprofil</a></dt>';?>

                          Kommentar


                          • #14
                            Zitat von mmnet Beitrag anzeigen
                            Juhu, einen Schritt weiter.
                            Aber ohne erkennbaren Grund ...

                            Wenn ich die Zuordnung der Kasse bei <dt> weglasse, wird kein Fehler mehr gezeigt.
                            Auch der zuvor gezeigte Code mit einem class-Attribut enthielt syntaktisch keinen Fehler.

                            Sieht so aus, als ob du uns nicht den wirklichen Code zeigst, mit dem du Probleme hast.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Zitat von wahsaga Beitrag anzeigen
                              Aber ohne erkennbaren Grund ...


                              Auch der zuvor gezeigte Code mit einem class-Attribut enthielt syntaktisch keinen Fehler.

                              Sieht so aus, als ob du uns nicht den wirklichen Code zeigst, mit dem du Probleme hast.
                              ...doch, das war und ist der 'wirkliche' Code.
                              Aber der Code ohne die Klassen Angabe hatte ich in eine Linie (ohne Umbruch) gesetzt und das war wohl der springende Punkt.

                              Den Code zuvor, habe ich jetzt nämlich auch in eine Linie gepackt und siehe da, es funktioniert!
                              PHP-Code:
                              <?php
                                  
                              if($thisPage=="bueroprofil")
                                  echo 
                              '<dt class="aktiv"><a href="buero.php?x=1">bueroprofil</a></dt>';?>

                              Kommentar

                              Lädt...
                              X