Avatar billede tendal Nybegynder
28. september 2007 - 10:11 Der er 9 kommentarer og
1 løsning

Dropdown menu med noget php

Hej eksperter
Jeg er i gang med at lave en dropdown menu ud fra noget eksisterende kode hvor menu var en almindelig vertical menu med submenuer neden under. Tanken er at lave den om til en dropdown menu, men jeg kan i første omgang ikke engang få menuen til at være horisontal i stedet for vertical. Jeg paster lige noget kode og håber så nogen kan fortælle hvad jeg skal gøre for i første omgang at få den horisontal i stedet for vertikal. Alt det andet med at onmouseover i forhold til dropdown må vente (et skridt af gangen :o) )

function getMenu($menu)
{
    global $menu, $subarray;
    $out= '

    <div id="navcontainer">
    <dl id="navlist">';
    $page = isset($_GET['page']) ? strtolower($_GET['page']) : '';
    $top = isset($_GET['top']) ? strtolower($_GET['top']) : strtolower($menu[0]);
    for ($i=0; $i<count($menu);$i++)
    {
        $id= (strtolower($menu[$i])==$top) ? ' id="active"' : '';
        $current= $id=='' ? '' : ' id="current"';
        $out.= '<dt '.$id.'><a href="index.php?page='.urlencode($menu[$i]).'&top='.urlencode($menu[$i]).'"'.$current.'>'.$menu[$i].'</a></dt>';
   
        // if we are handling current menu item and sub menu exists
        if($current!='' && isset($subarray[$top]))
        {
            $out.='<dd id='.$subarray[$top].'><ul id="subnavlist">';
       
            for ($j=0; $j<count($subarray[$top]);$j++)
            {
           
                $out.= '<li><a href="'.getURL($subarray[$top][$j], $subarray[$top][$j], $menu[$i]).'" id="subcurrent">'.$subarray[$top][$j].'</a></li>';
            }
            $out.='</ul></dd>';
        }
    }
    $out.='</dl></div>';
   
    return $out;
}

Håber ikke det ser alt for slemt ud når det vises. På forhånd tak for hjælpen
Avatar billede w13 Novice
28. september 2007 - 11:23 #1
For en, der ikke programmerer i PHP, ser det der lidt uoverskueligt ud. Kan du ikke vise os det, det genererer? Ellers får du nok mere ud af at spørge under PHP-kategorien.
Avatar billede w13 Novice
28. september 2007 - 11:25 #2
Mit gæt ville dog være, at det er, fordi du bruger <ul> og <li>. Disse fremtvinger linjeskift. Hvad hvis du lige prøver at rette disse til <span>?
Avatar billede tendal Nybegynder
28. september 2007 - 11:43 #3
Jeg kan prøve at smide det over under php og se hvad der sker :o)
Avatar billede w13 Novice
28. september 2007 - 20:02 #4
Jeg tror dog, det skyldes ul og li.

Prøv evt.:

function getMenu($menu)
{
    global $menu, $subarray;
    $out= '

    <div id="navcontainer">
    <dl id="navlist">';
    $page = isset($_GET['page']) ? strtolower($_GET['page']) : '';
    $top = isset($_GET['top']) ? strtolower($_GET['top']) : strtolower($menu[0]);
    for ($i=0; $i<count($menu);$i++)
    {
        $id= (strtolower($menu[$i])==$top) ? ' id="active"' : '';
        $current= $id=='' ? '' : ' id="current"';
        $out.= '<dt '.$id.'><a href="index.php?page='.urlencode($menu[$i]).'&top='.urlencode($menu[$i]).'"'.$current.'>'.$menu[$i].'</a></dt>';
   
        // if we are handling current menu item and sub menu exists
        if($current!='' && isset($subarray[$top])){
            $out.='<dd id='.$subarray[$top].'><div id="subnavlist">';

            for ($j=0; $j<count($subarray[$top]);$j++){
                $out.= '<span><a href="'.getURL($subarray[$top][$j], $subarray[$top][$j], $menu[$i]).'" id="subcurrent">'.$subarray[$top][$j].'</a></span>';
            }
            $out.='</div></dd>';
        }
    }
    $out.='</dl></div>';
   
    return $out;
}
Avatar billede tendal Nybegynder
29. september 2007 - 09:07 #5
Desværre ikke, men måske er det noget med min css, men det forstår jeg nu ikke helt, har forsøgt med display: inline; men det virker sgu ikke rigtigt
Avatar billede w13 Novice
08. april 2008 - 11:56 #6
Lukketid?
Avatar billede tendal Nybegynder
08. april 2008 - 21:12 #7
Ja det er det vel, men jeg har aldrig fået problemet løst og ingen at give nogle point
Avatar billede w13 Novice
08. april 2008 - 21:20 #8
Du kan oprette et svar og acceptere det. Så lukkes spørgsmålet og du får pointene igen.
Avatar billede w13 Novice
08. april 2008 - 21:21 #9
Det er yderst sjældent, at så gamle spørgsmål besvares så lang tid efter.
Avatar billede tendal Nybegynder
08. april 2008 - 21:36 #10
Jamen det gør jeg så
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester