Steffi: while-schleife

Hallo,
ich habe ein Problem mit der while-Schleife und ich weiß nicht, wie ich das hinbekommen soll. Ich erstelle eine Navigation mit Ober- und Unterpunkten. Ich habe in meiner Datenbank eine Ebene1 (Ebene1 ist der Oberpunkt) mit verschiedenen Zahlen (also Ebene1=1, Ebene1=2, Ebene1=3 etc.), sowie eine Ebene2, die die Unterpunkte darstellen. Daraus folgen Menüpunkt 1 mit den Unterseiten (oder auch Unterpunkten) 1.1, 1.2, 1.3, 1.4, etc. Jeder Datensatz verfügt über eine Ebene1 und Ebene2. Eigentlich möchte ich nur, dass nach jeder Ebene1 (mit den dazugehörigen Unterpunkten) zwei Zeilenabstände gemacht werden. Heißt also: nach jedem Menüabschnitt (Menüpunkt + die dazugehörigen Unterseiten) sollen zwei Zeilenabstände folgen.
Die while-Schleife gibt jedoch alle Ober- und Unterpunkte gleich aus. Ich kann z.B. kein <br >-Tag einfügen, weil dann unmittelbar alle Unterpunkte betroffen sind und ein <br >-Tag haben. Ich möchte allerdings, dass nur nach einem abschließenden Menüabschnitt ein (bzw. zwei) <br >-Tag(s) auftauchen soll(en).
Habt ihr vielleicht Ansätze um dies zu ermöglichen?

Vielen Dank.

LG
Steffi

  1. @@Steffi:

    nuqneH

    Die while-Schleife gibt jedoch alle Ober- und Unterpunkte gleich aus.

    ??

    Dein Menü sollte in etwa so aussehen

    <nav>  
      <ol>  
        <li><a href="1">1</a>  
          <ol>  
            <li><a href="1.1">1.1</a></li>  
            <li><a href="1.2">1.2</a></li></ol>  
        </li>  
        <li><a href="2">2</a>  
          <ol>  
            <li><a href="2.1">2.1</a></li>  
            <li><a href="2.2">2.2</a></li></ol>  
        </li></ol>  
    </nav>
    

    Mit CSS(!!) kannst du der äußeren Liste Abstände verpassen:

    nav>ol { margin-bottom: 2em }

    Ich kann z.B. kein <br >-Tag einfügen

    'br' ist nicht dazu da, Abstände zu erzeugen.

    HTML ist nicht dazu da, Abstände zu erzeugen.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
  2. Hello Steffi,

    ich habe ein Problem mit der while-Schleife

    zusätzlich zu dem von Gunnar bereits geposteten Endprodukt musst Du vielleicht noch wissen, wie man diese Ausgabe erzeugt. Das Ganze nennt man "Gruppenwechsel". Unter diesem Stichwort findest Du in der Literatur der elektrischen/elektronischen Datenverarbeitung ausreichend Beiträge.

    Im Prinzip funktioniert ein Gruppenwechsel so:

    Merke Dir die aktuelle Gruppe in einer Variable
    Gib solange die Gruppenmitglieder aus, wie die Gruppe dieselbe ist, wie die gemerkte
    Wechselt die Gruppe, dann gib zuerst den Gruppenfuß zur vorigen Gruppe aus.
    Dann merke Dir die neue Gruppe.
    Dann gib den Gruppenkopf zur neuen Gruppe aus.
    Am Ende gib noch den Gruppenfuß zur letzten Gruppe aus.

    Formulare für gruppierte Auflistungen waren früher i.d.R folgendermaßen aufgebaut:

    Seitenkopf
      Gruppenkopf
         Gruppenmitglied
         Gruppenmitglied
         Gruppenmitglied
      Gruppenfuß

    Gruppenkopf
         Gruppenmitglied
         Gruppenmitglied
         Gruppenmitglied
      Gruppenfuß

    ...
    Seitenfuß

    Wenn Du das mal vergleichst mit Gunnars HTML-Auszeichnung, dann kann man da einige Ähnlichkeiten feststellen.

    Das Problem ist, dass es auch Sprünge geben kann in der Einrückung. Die müssen im Markup auch berücksichtigt werden. Dazu musst Du die alte und die neue Einrückungstiefe feststellen und nur SCHRITTWEISE von der vorigen auf die nächste gewünschte erhöhen. Also wenn ein Sprung von 1.2.3 zurück auf 2. existiert, dann musst Du zunächst die Abschlussaktionen für den Schritt von 1.2.3 auf 1.2. vornehmen, dann die Aktionen für den Schritt von 1.2. auf 1. und dann erst die Aktion für den Schritt von 1. auf 2.

    Ich denke, es ist am besten, Du baust Dir für jede Aktion (Erhöhung der Einrückungstiefe, Verringerung der Einrückungstiefe) eine kleine Funktion, die Du dann nur noch mit dem passenden Parameter aufrufen musst.

    Liebe Grüße aus dem sonnigen Süden

    Tom vom Berg, noch auf Reisen

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de