88871
Goto Top

Die Ausgabe einer PHP Funktion umgestalten

Hoied

Ich gebs auf, habe einiges probiert, mit DIV's, P's, alle /n's rausgenommen etc.... Nun erhoffe ich mir hier Hilfe. Nunja, die Funktion habe ich nicht selber geschrieben, darum wohl auch die Schwierigkeit die Ausgabe umzugestalten

Die Funktion listet mir ein Dynamisches Menü zusammen. Das Menü ist in der mySQL hinterlegt. Mit Parent und Child, sprich Hauptgruppe, Untergruppe.

Die Hauptgruppe heisst: $parent_array (So sehe ich das)
Die Subgruppe heisst: $sub_array (So sehe ich das)

WAS ICH ÄNDERN WOLLTE:
- Ich möchte nun die HAUPTGRUPPE in eine eigenes <div>
- Die SUBGRUPPE auch in ein eigenes <div>
- Das Menü soll HORIZONTAL ausgegeben werden und nicht untereinander wie im Orginal

<div class="hauptgruppe">  
HAUPTMENU1 | HAUPTMENU2 | HAUPTMENU3 | ....
<p class="subgruppe">  
SUB1 | SUB2 | SUB3 | ...
</p>
</div>



In der Funktion unten wird mit <ul> und <li> gearbeitet, das möchte ich eben nicht sondern alles auf die gleiche Linie bringen.

Ausgabe der Funktion unten:

  1. Hauptmenu1
  • Untermenu 1.1
  • Untermenu 1.2

  1. Hauptmenu 2
  • Untermenu 2.1
  • Untermenu 2.2


// menu zusammengeklappt
function dyn_menu($parent_array, $sub_array, $qs_val = "menu", $main_id = "nav", $sub_id = "subnav", $extra_style = "foldout")   
{   
    
    $menu = "<ul id=\"".$main_id."\">\n";  
    foreach ($parent_array as $pkey => $pval) 
    {
        if (!empty($pval['count']))   
        {
            $menu .= "  <li><a class=\"".$extra_style."\" href=\"".$pval['link']."?".$qs_val."=".$pkey."\">".$pval['label']."</a></li>\n";  
        } 
        else 
        {
            $menu .= "  <li><a href=\"".$pval['link']."\">".$pval['label']."</a></li>\n";  
        }
                
        if (!empty($_REQUEST[$qs_val])) 
        {
            $menu .= "<ul id=\"".$sub_id."\">\n";  
            foreach ($sub_array as $sval) 
            {
                if ($pkey == $_REQUEST[$qs_val] && $pkey == $sval['parent'])   
                {
                    $menu .= "<li> <a href=\"".rebuild_link($sval['link'], $qs_val, $sval['parent'])."\" target=\"_parent\">".$sval['label']."</a></li>\n";  
                }
            }
            $menu .= "</ul>\n";  
        }
    }
    $menu .= "</ul>\n";  
    return $menu;
}

PS: in der Funktion rebuild_link wird keine HTML oder CSS Ausgabe angegeben. Darum habe ich Sie hier nicht gepostet. Die anfängliche mySQL Abfrage auch nicht.....


Vielleicht hat da jemand eine Lösung. Das wäre echt hilfreich, Merci!

Content-Key: 177358

Url: https://administrator.de/contentid/177358

Printed on: May 7, 2024 at 07:05 o'clock

Member: nxclass
nxclass Dec 07, 2011 at 09:58:51 (UTC)
Goto Top
ich sehe da kein PHP Problem !?
Eventuell hilft Dir schon die CSS Eigenschaft display: inline; - ansonsten verschiebe das Thema mal in CSS oder HTML.
Mitglied: 88871
88871 Dec 07, 2011 at 12:39:00 (UTC)
Goto Top
Also scheint so das es auch hier ein "härterer Brocken" ist face-smile

Ich habe nun mal alles weggenommen was es nicht braucht. <ul> <li> /n etc....

Habe nun mit inline herumgespielt.

Immerhin habe ich nun ALLES auf einer Linie. Nun sollte aber die Subgruppe unterhalb vom Hauptmenue erscheinen face-smile

// menu zusammengeklappt
function dyn_menu($parent_array, $sub_array, $qs_val, $main_id, $sub_id) 
{   
  
    $menu = "<div style=\"display:inline;\" id=\"".$main_id."\">";  
    
    foreach ($parent_array as $pkey => $pval) 
    {
        if (!empty($pval['count']))   
        {
            // ausgabe wenn submenues vorhanden sind
            $menu .= "  <a href=\"".$pval['link']."?".$qs_val."=".$pkey."\">".$pval['label']."</a> | ";  
        } 
            else 
            {
                // ausgabe wenn keine submenues vorhanden sind
                $menu .= "  <a href=\"".$pval['link']."\">".$pval['label']."</a> | ";  
            }
                    
            if (!empty($_REQUEST[$qs_val])) 
            {
                // submenues anzeige falls keine vorhanden
                $menu .= "<p style=\"display:inline;\" id=\"".$sub_id."\">";  
                foreach ($sub_array as $sval) 
                {
                    if ($pkey == $_REQUEST[$qs_val] && $pkey == $sval['parent'])   
                    {
                        // submenue anzeige falls vorhanden
                        $menu .= " <a href=\"".rebuild_link($sval['link'], $qs_val, $sval['parent'])."\" target=\"_parent\">".$sval['label']."</a> | ";  
                    }
                }
                $menu .= "</p>";  
            }
    }
    $menu .= "</div>";  
    return $menu;
}
Mitglied: 88871
88871 Jan 30, 2012 at 08:39:39 (UTC)
Goto Top
hab das ganze verworfen. der schreiber des scriptes hat sich auch nie gemeldet bei mir. ist also ungelöst, nutzlos.