Ankündigung

Einklappen
Keine Ankündigung bisher.

Listenmenu

Einklappen

Neue Werbung 2019

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

  • Listenmenu

    Servus,

    derzeit arbeite ich an einem Listemmenü in HTML. Das Problem ist nun,
    dass der HTML und CSS Code fertig ist, ich die Generierung aber nicht
    auf die Reihe bekomme.

    Das soll also rauskommen.

    Code:
    <ul id="menu">
    	[*]punkt1
    	[*]punkt2
    	[*]punkt3
    		<ul>
    			[*]unterpunkt3.1
    			[*]unterpunkt3.2
    		[/list]
    	[/list]
    Und so weiter.

    Ich habe nur vier verschiedene Ansätze gehabt und vorhin alles
    gekillt, weil ich einfach nicht weiter gekommen ist. Aus der DB habe
    ich die Links und jeweils ein Flag Parent, der anzeigt, wann ein Menüpunkt
    Eltern hat, wenn erste Ebene dann eben 0. Zudem gibt es ein ordering,
    innerhalb der Menüpunkte. Und selbstverständlich sind mehre Ebenen
    möglich. Ich komm einfach nicht klar. Habt ihr da einen Tipp, wie man
    das am geschicktesten macht?

    Grüße
    Tine

  • #2
    die tabellenstruktur mit parrent_id ist Ok und ist für Menu vollkommen ausreichend.
    damit ich dir weiter was empfehlen kann, würde ich gerne wissen wie offt wird sich menu verändern? wenn es nur um die selltene veränderungen handelt, dann sind die mögliche Einsätze ganz anders als bei einem Menu, die sich ständig dynamisch verändert.
    Slava
    http://bituniverse.com

    Kommentar


    • #3
      Rekursion

      PHP-Code:
      <?php
      function displayMenu($iParentMenu 0$iDepth 0)
      {
        
      $sQuery sprintf('SELECT * FROM menu WHERE parentid = %u ORDER BY ranking ASC'$iParentMenu);
        
      // das übliche
        
      if (mysql_num_rows() > 0) {
          print(
      '<ul>');
          while (..) {
            
      printf('[*]%s'$row['menuname']);
            
      displayMenu($row['parentid'], $iDepth 1);
            print(
      '');
          }
        }
      }
      //..
      displayMenu();
      ?>
      Das Menü solltest du aber entweder cachen oder in die displayMenu() einen Cache-Parameter einbauen, um nicht pro Menütiefe und Punkt eine Datenbankabfrage abzuschicken.

      Kommentar


      • #4
        Hallo Slava,

        das Menu ist vollkommen dynamisch. Eine Tabellenkonstruktion wäre zumindest für
        mich viel einfacher, aber dieses ineinander verschachtelte ul il ul, stellt mich
        vor Probleme, gerade da die Tags ja nicht immer wieder sofort geschlossen werden.
        Vielleicht ist die Lösung auch ganz nah, aber seit drei Tagen beiße ich mir die Zähne aus.

        Kommentar


        • #5
          Sind ein paar Fehler drin und vollständig ist es auch nicht, aber das bekommst du hin

          Kommentar


          • #6
            Bei Rekursion war ich schon, nur dieses öffnen und schließen der ul/li im richtigen
            Moment macht mich kirre.

            Kommentar


            • #7
              jetzt hast du die lösung von Zergling bekommen.

              die Menu ändern sich nicht von aleine, sondern werden von bestimmten Scripten verändert.
              bei dem script, der eine veränderung im menu macht muss du die ausgaben von dem Zergling vorgeschlagener function in eine datei speichern und bei zeichnen von deinem menu einfach der inhalt von deiser Datei an passender stelle einbinden.
              Im klar-text wird deine Menu nie von DB sondern von datei gelesen.
              Slava
              http://bituniverse.com

              Kommentar


              • #8
                Zitat von tinchen
                Bei Rekursion war ich schon, nur dieses öffnen und schließen der ul/li im richtigen
                Moment macht mich kirre.
                Dann sag ich dir besser wo's einen Fehler gibt:[/list]muss hinter die while-Schleife aber noch vor die schließende geschweifte Klammer von if

                Kommentar


                • #9
                  OT:
                  Hi Zergling!
                  du hast ein super-ranking bei google
                  http://www.google.de/search?hl=de&q=...in+Kalifornien
                  Slava
                  http://bituniverse.com

                  Kommentar


                  • #10
                    Am liebsten wärs mir garnicht da aufzutauchen. Ich werd demnächst zumindest mal die Signatur wieder ändern

                    Kommentar


                    • #11
                      Hmm.. ich bin die ganze Zeit dran, das nur in eine einzige Abfrage zu packen,
                      ob das überhaupt geht?

                      Kommentar


                      • #12
                        Cache das ganze doch wie Slava gesagt hat.

                        Kommentar


                        • #13
                          Die ganze Seite wird gecached, dass ist nicht das Problem.
                          Mein Problem sind immer noch diese "unsymmetrischen" tags und der Wille
                          es in einer zu machen.

                          Kommentar


                          • #14
                            Was meinst du mit unsymetrischen Tags?

                            Und was meinst du in eine Abfrage packen?

                            Hol doch einfach alle Datensätze aus der DB und verwende dann jeweils die, die du benötigst.

                            Kommentar


                            • #15
                              Das die neue ul stufe bereits in den li tag mit rein muss und danach wieder geschlossen
                              wird. Ich hatte das vorhin mit einer Tabelle ausprobiert, das ist viel einfacher.

                              Also ich hole mir noch einmal alle Daten und sehe dann, was ich draus mache.

                              Kommentar

                              Lädt...
                              X