Ergebnis 1 bis 9 von 9

Thema: Dynamischer Menüaufbau, Probleme

  1. #1
    OJMD
    Gast

    Standard Dynamischer Menüaufbau, Probleme

    Hallo zusammen,

    ich weiß nicht mehr weiter. Wo liegt mein Denkfehler.
    Ich möchte eine Dynamisches Menü erstellen, habe eine Tabelle mit dem Inhalt:
    id -> benötige ich für die Seiten zuweisung
    menuname -> Menüname
    typ -> 1 für Hauppunkt / 2 für Unterpunkt
    menuid -> für die id dem zugeordneten Hauptpunkt
    pos -> für die manuelle reihenfolge

    Allso wenn ich die Seite aufrufe sollen nur die Hauppunkte zusehen sein.
    Wenn ich nun ein Link aufrufe, soll geprüft werden ob Unterpunkte da sind und wenn ja sollen diese unter dem Haupt aufgelistet werden. Dann sollen die restlichen Punkte drunter wieder aufgebaut werden.

    Nur es klapt nicht was für ein Denkfehler mache ich?


    Code:
    <?
      include&#40;"mysql.inc"&#41;;
      include&#40;"#_functions.inc"&#41;;
      $title = "Blog";
    
    $menu = $_GET&#91;'menu'&#93;;
    ?>
    
    
    <html>
    <head>
    <title><?=$title ?></title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    
    <table border="0" width="100%" height="100%">
    <tr>
    <td align="center" valign="middle">
    
    <table border="0">
    <tr>
    <td>
    
    <table border="0" width="800" height="600">
    <tr><td colspan="3" align="center" height="20"><big><?=$title ?></big></td></tr>
    <tr>
    <td align="center" valign="top" width="190">
    <?
    	
    	$query = "SELECT * FROM OJ_Brain_Menu WHERE Pos";
      	$sql = mysql_query&#40;$query&#41;;
      	
            while &#40;$ds = mysql_fetch_object&#40;$sql&#41;&#41;&#123; 
    
    	$id 		= $ds->id;
      	$menu_name 	= $ds->menuname;
    	$menu_id	= $ds->menuid;
    	$typ		= $ds->typ;
    	$farbe   	= $ds->farbe;
    
    
    if &#40;$menu == $id&#41; &#123;
    
    		echo "<table border=\"1\" width=\"100\">";
    		echo "<tr><td align=\"center\" height=\"30\">$menu_name</td></tr>";
    		echo "</table>";
    
    		$query = "SELECT * FROM OJ_Brain_Menu WHERE menuid = id";
      		$sql = mysql_query&#40;$query&#41;;
      		while &#40;$ds = mysql_fetch_object&#40;$sql&#41;&#41;&#123; 
    
    		$id 		= $ds->id;
     	 	$menu_name 	= $ds->menuname;
    		$menu_id	= $ds->menuid;
    		$typ		= $ds->typ;
    		$farbe   	= $ds->farbe;
    		
    		if &#40;$menu == $id&#41; &#123;
    
    		echo "<table border=\"1\" width=\"100\">";
    		echo "<tr><td align=\"center\" height=\"30\">$menu_name</td></tr>";
    		echo "</table>";
    		&#125; else &#123;
    		echo "<table border=\"1\" width=\"100\">";
    		echo "<tr><td bgcolor=\"blue\" align=\"center\" height=\"30\"><a href=\"menue.php?menu=$id\">$menu_name</a></td></tr>";
    		echo "</table>";
    		&#125;&#125;
    
     	&#125; elseif&#40;$typ == 1&#41; &#123; 
    
    		echo "<table border=\"1\" width=\"100\">";
    		echo "<tr><td bgcolor=\"blue\" align=\"center\" height=\"30\"><a href=\"menue.php?menu=$id\">$menu_name</a></td></tr>";
    		echo "</table>";
       	&#125; else &#123; &#125;
    
    &#125;
    mysql_close&#40;$dz&#41;;
        ?>
    
    </td>
    <td width="10">
    </td>
    <td valign="top" width="600">
    <iframe src="./anzeige.php?id=<?=$menu ?>" width="100%" height="100%" name="Fenster">
      
    
    Ihr Browser kann leider keine eingebetteten Frames anzeigen&#58;
      Sie k&ouml;nnen die eingebettete Seite &uuml;ber den folgenden Verweis
      aufrufen&#58; SELFHTML</p>
    
    
    </iframe>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </body>
    </html>
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    mache erstens das menu als list ul und li

    dann mittels CSS ul ul { display: none; }
    so das das untermenu weg ist..
    dann aufs ul:

    onMouseOver="this.style.display='inline';" onMouseOut="this.style.display='none';"

  3. #3
    OJMD
    Gast

    Standard

    Vielen Dank GreenRover,

    hm, ..."mache erstens das menu als list ul und li "

    kannst Du mir ein keines Beispiel geben?

    Gruß Oli

  4. #4
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    am einfachsten so:


    Code:
    <style type="text/css">
    .menu, .menu ul 
    &#123;
    	list-style&#58; none;
    	padding&#58; 0px;
    	margin&#58; 0px;
    &#125;
    
    .menu li 
    &#123;
    	padding&#58; 0px;
    	margin&#58; 0px;
    	padding-left&#58; 5px;
    &#125;
    </style>
    </head>
    
    <body>
    <ul class="menu">[*]H meneu[*]H meneu
     <li onmouseover="this.getElementsByTagName&#40;'ul'&#41;&#91;0&#93;.style.display='inline'" onmouseout="this.getElementsByTagName&#40;'ul'&#41;&#91;0&#93;.style.display='none';">H meneu
     <ul style="display&#58;none;">[*]U Meneu  [*]U Meneu  [*]U Meneu  [/list]
     [*]H meneu[*]H meneu[/list]
    </body>

  5. #5
    OJMD
    Gast

    Standard

    Das ist eine interessante Idee. HAb ein wenig rum probiert und das onmousover durch onklick ersetzt.

    Eine Frage, wie sieht es aus wenn ich ein anderes Untermenü öffne und das andere wieder ausgeblendet wird. Es soll immer nur ein Untermenü eingeblendet sein.

    Vielen Dank+Gruß Oli

  6. #6
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    das heist, das untermenu soll sollange offen bleiben, solange kei nanderes geöffnet wird..

    naja da fangen wir langsam echt mal mit ner runde js an:

    Code:
    <style type="text/css">
    .menu, .menu ul
    &#123;
       list-style&#58; none;
       padding&#58; 0px;
       margin&#58; 0px;
    &#125;
    
    .menu li
    &#123;
       padding&#58; 0px;
       margin&#58; 0px;
       padding-left&#58; 5px;
    &#125;
    </style>
    <script type="text/javascript" language="javascript">
    function openMenu&#40; obj &#41;
    &#123;
     var ebene = obj.parentNode.childNodes;
     
     for &#40;i=0 ; i<ebene.length ; i++&#41;
     &#123;
      try 
      &#123;
       throw ebene&#91;i&#93;.getElementsByTagName&#40;'ul'&#41;&#91;0&#93;.style;
      &#125; catch &#40;e&#41; &#123; 
       e.display='none';
      &#125; 
     &#125;
     
     obj.getElementsByTagName&#40;'ul'&#41;&#91;0&#93;.style.display='inline';
    &#125;
    </script>
    </head>
    
    <body>
    <ul class="menu">[*]H meneu
     <li onclick="openMenu&#40;this&#41;;">H meneu
     <ul style="display&#58;none;">[*]U Meneu [*]U Meneu [*]U Meneu [/list]
     [*]H meneu
     <li onclick="openMenu&#40;this&#41;;">H meneu
     <ul style="display&#58;none;">[*]U Meneu [*]U Meneu [*]U Meneu [/list]
     
     <li onclick="openMenu&#40;this&#41;;">H meneu
     <ul style="display&#58;none;">[*]U Meneu [*]U Meneu [*]U Meneu [/list]
     [*]H meneu[/list]
    </body>
    ich hoffe mal du verstehst das spiel da überhaupt ?!

  7. #7
    OJMD
    Gast

    Standard

    Klasse GreenRover genau so meinte ich es, vielen Dank für deine Mühe.

    So jetzt muss ich nur noch mich darum kümmern das ich beim auslesen meiner Datenbank deine code Struktur aufbaue.

    Danke noch mal, Gruß+Dank Oli

    PS:
    Deinen Code verstehen ist leider nicht mein Problem im Gegenteil, selber darufkommen oder richtig anwenden schon eher.

  8. #8
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    So du verstehst das:

    Code:
    function openMenu&#40; obj &#41;
    &#123;
     var ebene = obj.parentNode.childNodes; 
     // parentNode&#58;  das nächst höhere Tag auswählen <ul class="menu">
     // childNodes&#58;  alle Tags die sich in unter der aktuellen auswähl befinden <ul class="menu"> auswählen
     
     for &#40;i=0 ; i<ebene.length ; i++&#41;     // alle tags im <ul class="menu"> durchgeheb
     &#123;
      try                                                    // versuche zu erstellen
      &#123;
       throw ebene&#91;i&#93;.getElementsByTagName&#40;'ul'&#41;&#91;0&#93;.style;  // wenn das aktuelle[*] ein <ul> beihalt, wähle die CSS optionen aus
      &#125; catch &#40;e&#41; &#123;            // wenn erfolgreich
       e.display='none';       // setze es auf unsichtbar
      &#125;                        //  effect, alle menues sind eingeklapt
     &#125;
     
     obj.getElementsByTagName&#40;'ul'&#41;&#91;0&#93;.style.display='inline';  // wähle nun das untergeordnette ul des überbenene[*] aus und setze den style auf inline &#40;in reihe == sichtbar&#41;
    &#125; 
    
    
    
    
    openMenu&#40;this&#41;; // übergabe des aktuellen Tags[*]

  9. #9
    Gast

    Standard

    Ein toller Code, das mit dem aufklappbarem Menü!
    Suche schon seit langem nach so was für meine Seite!

    Was muss ich denn ändern, wenn ich will, dass bereits angeklickte Untermenüs offen bleiben, wenn ich ein anderes Hauptmenü anklicke ?


    Danke!

    CM

Ähnliche Themen

  1. dynamischer link
    Von 00eraser00 im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 25.09.2006, 21:08
  2. Dynamischer Internetseitenaufbau
    Von Ascy im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 2
    Letzter Beitrag: 22.03.2006, 20:30
  3. dynamischer text
    Von vv im Forum Flash Forum
    Antworten: 0
    Letzter Beitrag: 13.01.2006, 16:46
  4. Probleme mit dem postitionieren Dynamischer Bilder
    Von ->G-StaR-GangXteR<- im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 2
    Letzter Beitrag: 13.01.2006, 15:48
  5. dynamischer Seitentitel in PHP
    Von danchen im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 17
    Letzter Beitrag: 21.12.2005, 16:45

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •