Ankündigung

Einklappen
Keine Ankündigung bisher.

treeausgabe

Einklappen

Neue Werbung 2019

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

  • treeausgabe

    hallo! habe folgendes denkproblem:
    will mit einer rekursiven schleife eine menüstruktur ausgeben, hänge aber an der umsetzung. Mein code sieht folgend aus:

    PHP-Code:
     function get_dirlist($who=""$ebene="-")
     { global 
    $db_gruppen;
      global 
    $x;
      
    $ergebnis mysql_query("SELECT * FROM $db_gruppen WHERE parentid='$who' ORDER BY titel DESC");
      while(
    $row mysql_fetch_object($ergebnis))
      { 
    $x++;    
       echo 
    $row->titel.'<br>';
       
    get_dirlist($row->id$ebene."-");
      }
     }
     
    get_dirlist(); 
    da bekomme ich das menü zb So ausgegeben

    Menü1
    -Submenü1
    -Submenü2
    -Submenü3
    Menü2
    Menü3

    will aber dass das ganze folgend ausgegeben wird:

    <ul>
    <li>Menü1
    <ul>
    <li>Submenü1</li>
    <li>Submenü2</li>
    <li>Submenü3</li>
    </ul>
    </li>
    <li>Menü2</li>
    <li>Menü3</li>
    </ul>

    wie stell ich das mit der schleife an?

  • #2
    hi,
    wenn ich des richtig gelesen hab, ruft sich deine Funktion rekursiv auf.
    du könntest in deiner Schleife die Ausgabe zwischen <li></li> schreiben.
    wobei nach deinem beispiel müsstest du das <li> am anfang der schleife ausgeben, und das </li> am ende

    die <ul></ul> Ausgabe kommt vor und nach der Schleife, dann müsste es funktionieren.
    Karteikasten
    "Es gibt auch Linux-Aussteiger. Aber die Rückfallquote steigt mit jeder Win-Version." - Walter Saner in de.newusers.questions

    Kommentar


    • #3
      jo das habe ich probiert, aber komischerweise gibt er mir ein paar <ul> zuviel aus wie folgend:

      Code:
      <li>Menü1</li>
      <ul>
      <li>Submenü1</li>
      <ul></ul>
      <li>Submenü2</li>
      <ul></ul>
      </ul>
      nach jedem letzten untermenüpunkt setzt er mir zusätzlich eine <ul></ul> wobei ich die da nicht brauche.. gibt mir das also falsch aus

      Kommentar


      • #4
        sorry, hab den code leicht missinterpretiert.
        die zusätzlichen ul-tags kommen daher, dass die funktion sich grundlos/leer aufruft und somit noch nen untermenü erstellen will.
        das einfachste wird sein, du tust dein query zuerst über mysql_num_row ziehen und überprüfen, ob daten vorhanden sind.
        sind keine da, mit return die funktion verlassen.
        sind welche da, dann erst die ul-tags ausgeben und die schleife durchlaufen.
        Karteikasten
        "Es gibt auch Linux-Aussteiger. Aber die Rückfallquote steigt mit jeder Win-Version." - Walter Saner in de.newusers.questions

        Kommentar


        • #5
          jo danke! das hab ich schon probiert und funktioniert einwandfrei! danke für die hilfe

          Kommentar

          Lädt...
          X