Avatar billede m-rachlitz Nybegynder
19. april 2008 - 17:07 Der er 4 kommentarer og
1 løsning

Dynamisk menu

Hurtig indledning:
jeg er ved at lave et lektie site for mig selv og nogle klasse kammerater hvor det er muligt for flere brugere at uploade notater, indskrive afleveringer i vores fælles kalender, og andre skole relaterede ting og derfor skal de kunne tilføje submenuer, og menuer.

blog_menu (id, menu)
- id (giver sig selv)
- menu (navn på menu, ex: Nyheder, Kategorier, Download, Galleri)

blog_submenu (id, submenu, menu_id, link)
- id
- submenu (navn på submenu, ex: dansk, tysk, engelsk - som i dette tilfælde hører under hovedmenuen kategorier)
- menu_id (tal som er identisk med det id i blog_menu for at bestemme hvilken hovedgruppe den hører under)
- link (submenuens link)

Problem:
Mit problem er at jeg ikke kan få mit script til at udskrive mere end 1 submenu under hver hovedgruppe. Har kæmpet med dette siden klokken 11 i formiddags og forstår det bare ikke.

Code uddrag:

<dl id="menu">
    <?
        $result_submenu = mysql_query("SELECT id, submenu, menu_id, link FROM blog_submenu") OR die(mysql_error());
            $submenu = mysql_fetch_array($result_submenu);
        $result_menu = mysql_query("SELECT id, menu FROM blog_menu ORDER by id") OR die(mysql_error());
        while ($menu = mysql_fetch_array($result_menu)) {
    ?>
    <dt onclick="java script:show('smenu<?php echo $menu['id'];?>');">
        <div id="menu_headline"><?php echo $menu['menu']; ?></div>
    </dt>
        <dd id="smenu<?php echo $menu['id'];?>">
            <ul>
                <?php
                    if ($menu['id'] == $submenu[menu_id]) {
                ?>
                    <li>
                        <a href="<?php echo $submenu['link'];?>">
                            <?php echo $submenu['submenu']; ?>
                        </a>
                    </li>
                <?}?>
            </ul>
        </dd>
    <? } ?>
</dl>

------------------------------------

Menuen er lavet i fuld css og jeg vil gerne have den forbliver således i det nuværende design hvis muligt.

På forhånd tak.
MVH. Michael
Avatar billede m-rachlitz Nybegynder
19. april 2008 - 18:46 #1
Løste gåden selv . :)

Hvis nogen får brug for et lignende script så min kode således ud:

<dl id="menu">
<?
    $navi_query = mysql_query("SELECT id, menu FROM blog_menu ORDER by id");
        while ($navi = mysql_fetch_array($navi_query)) {
    ?>
    <dt onclick="java script:show('smenu<?php echo "$navi[id]"; ?>');">
        <div id="menu_headline"><?php echo "$navi[menu]"; ?></div>
    </dt>
        <dd id="smenu<?php echo "$navi[id]"; ?>">
            <ul>
                <?php if ($menu_id = $navi['id']) {
                    $navi_query2 = mysql_query("SELECT id, submenu, menu_id, link FROM blog_submenu WHERE menu_id='$menu_id'");
                        while ($navi2 = mysql_fetch_array($navi_query2)) {
                ?>
                    <li>
                        <a href="<?php echo "$navi2[link]"; ?>">
                            <?php echo "$navi2[submenu]"; ?>
                        </a>
                    </li>
                <?}}?>
            </ul>
        </dd>
    <? } ?>
</dl>
Avatar billede w13 Novice
19. april 2008 - 18:48 #2
Et tip:
  Du kan i øvrigt spare "java script:" inde i en onclick. Det gør ingen forskel, om det står der eller ej, da JavaScript er standard i en onclick-event.
Avatar billede m-rachlitz Nybegynder
19. april 2008 - 19:02 #3
ah, tak ska for oplysningen w13, var jeg ikke klar over. :-)
Avatar billede w13 Novice
19. april 2008 - 19:10 #4
Det gælder selvfølgelig alle on-eteller (eventhandlers), dvs. også onload, onmouseover, etc.

"java script:noget" bør kun bruges sammen med JavaScript i href-attributter - dér kræves det dog også, for at kunne køre JavaScript.

(F.eks.: <a href="java script:alert('hello world');void(0)">)
Avatar billede showsource Seniormester
19. april 2008 - 20:22 #5
Du kan jo også hente alle rows i en query, i stedet for først at at hente for kategori, og derefter tilhørende underkategori.
Du skal så blot lave tjek på om hovedkategorien er den samme ved udskrivning i din while
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