Navigation

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

  • Navigation

    Hallöchen

    Ich hab mir ne kleine Navigation aufgebaut die so aussieht:
    PHP-Code:
    class nav
      
    {
        var 
    $linkarr//0=>hauptmenu 1=>untermenu 2=>.....
        // link auflösen;
        
    function nav($id)
          {
              
    $id base64_decode($id);
              
    $this->linkarr explode("||"$id);
              return 
    $this->linkarr;
          }
        
    //Menuziel bekommen
        
    function target($key)
          {
            return 
    $this->linkarr[$key];
          }
        
    //Link erstellen
        
    function create($key$value)
          {
            
    $this->linkarr[$key] = $value;
            
    $link implode("||",$this->linkarr);
            
    $this->link base64_encode($link);
            return 
    $this->link;
          }
      } 
    Navigiert wird per SWITCH:

    PHP-Code:
    if($nav->linkarr[0] == "main")
        {
            SWITCH(
    $nav->linkarr[1])
                {
                    case 
    aboutme:
                    echo 
    "Aboutme";
                    break;
                    
                    case 
    links:
                    echo 
    "Links";
                    break;
                    
                    case 
    guestbook:
                    echo 
    "Guestbook";
                    break;
                    
                   case 
    contact:
                    echo 
    "Contact";
                   break;
                        
                    case 
    news:
                    echo 
    "News";
                    break;

              default:
                    echo 
    "Home";
                    break;
                }
        } 
    Folgendes Problem:
    Es wird niemals das default vom Switch ausgegeben. Hier zB bekommen ich immer Guestbook ausgegeben. Ich versteh die PHP-Welt nicht mehr.

    Enweder ich hab da irgendwo nen groben Fehler, oder ich bin einfach zu müde. Aber ich komm zum Teufel nochmal, nicht auf den Fehler.

    schonmal nen Riesendank im Vorraus.
    Für Rechtschreibfehler übernehme ich keine Haftung!

  • #2
    1. ein default-wert braucht kein break

    2. default wird nur dann verwendet, wenn ncihts anderes zutraf.

    3. hast du anführungszeichen vergessen.

    FALSCH: case aboutme:
    RICHTIG: case 'aboutme':

    usw.

    oder sind aboutme und die anderen konstanten?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Original geschrieben von Abraxax
      1. ein default-wert braucht kein break

      2. default wird nur dann verwendet, wenn ncihts anderes zutraf.

      3. hast du anführungszeichen vergessen.

      FALSCH: case aboutme:
      RICHTIG: case 'aboutme':

      usw.

      oder sind aboutme und die anderen konstanten?
      1. erledigt.
      2. schon klar, nur mein default ist home, aber aboutme wird immer ausgegeben.
      3. Hat bisher auch immer gklappt, aber ist auch geändert.

      4. funtzt trotzdem nicht.
      EDIT:
      ahja, ich lass mir den array (linkarr) extra als echo ausgeben und die richtigen Werte hat er
      Für Rechtschreibfehler übernehme ich keine Haftung!

      Kommentar


      • #4
        zu 3.
        kann gar nicht sein.....


        aber geht jetzt alles?
        poste noch den korrigierten code.


        OffTopic:
        ich bin jetzt aber wech...

        n8
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Original geschrieben von Abraxax
          zu 3.
          kann gar nicht sein.....
          wohl

          aber geht jetzt alles?
          poste noch den korrigierten code.
          [/B]
          geht nicht selber Schrott...

          PHP-Code:
          if($nav->linkarr[0] == "main")
              {
                  SWITCH(
          $nav->linkarr[1])
                      {
                          case 
          'aboutme':
                          echo 
          "Aboutme";
                          break;
                          
                          case 
          'links':
                          echo 
          "Links";
                          break;
                          
                          case 
          'guestbook':
                          echo 
          "Guestbook";
                          break;
                          
                         case 
          'contact':
                          echo 
          "Contact";
                         break;
                              
                          case 
          'news':
                          echo 
          "News";
                          break;

                    default:
                          echo 
          "Home";
                      }
              } 
          OffTopic:
          ich bin jetzt aber wech...

          n8
          [/B]
          gute Idee
          Für Rechtschreibfehler übernehme ich keine Haftung!

          Kommentar


          • #6
            Prüfe entweder speziell nochmal alle übergebenen Variablen und lasse dir den Inhalt von linkarr[0] und linkarr[1] ausgeben, oder versuche es ersatzweise mal hiermit:

            Code:
            if($nav->linkarr[0] == "main")
            {
                    if ($nav->linkarr[1] == "aboutme"):  echo "Aboutme";
                    elseif ($nav->linkarr[1] == "links"):  echo "Links";
                    elseif ($nav->linkarr[1] == "guestbook"):  echo "Guestbook";
                    elseif ($nav->linkarr[1] == "contact"):  echo "Contact";
                    elseif ($nav->linkarr[1] == "news"):  echo "News";
                    else: echo "Home";
                    endif;
            }
            Eventuelle Tippfehler bei PHP-Beispielen können durchaus vorkommen, aber es geht um die grundsätzliche Möglichkeit der Anwendung.

            Es war einmal ein Benutzer, der hatte ein Problem mit ... PHP (http://de3.php.net/manual/de/) MySQL (http://dev.mysql.com/doc/mysql/de/) HTML (http://www.selfhtml.org/)

            Wer suchet, der findet: http://www.php-resource.de/forum/search.php
            Immer noch nichts? Dann frag!


            Mit freundlichen Grüßen,
            @4u

            Kommentar


            • #7
              so klappt es, ich hab mir den Inhalt von linkarr[1] davor auch schon ausgeben lasen und das passt scho

              aver des gammlige switch funtzt net, naja setz ich mich mal nochmal dran
              EDIT:
              problem solved! Lag an der class...
              Zuletzt geändert von Damian1984; 28.06.2003, 13:13.
              Für Rechtschreibfehler übernehme ich keine Haftung!

              Kommentar

              Lädt...
              X