SetaPDF
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 25.01.2004, 00:14   #1
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE

Kleines dynamisches Menü mit max. 3 Ebenen


Irgendwie stehe ich auf dem Schlauch - ich möchte ein ganz simples Menü erstellen mit maximal drei Ebenen/Tiefen/Verschachtelungen. Sprich, ich habe eine Hauptnavigation. Klicke ich auf einen Punkt, öffnet sich eine Subnavigation (dadrunter). Klicke ich wiederum da drauf, geht eine weitere auf.

Das alles aber ohne JS, sondern mit PHP - die Seite kann sich ruhig refreshen.

Nochmal "Bildhaft":

Menü 1 | Menü 2 | Menü 3

Klick auf Menü 1 ergibt:

Menü 1 | Menü 2 | Menü 3
Sub 1 | Sub 2 | Sub3

Klick auf Sub 2 ergibt:
Menü 1 | Menü 2 | Menü 3
Sub 1 | Sub 2 | Sub3
Sub 1.2 | Sub 2.2 | Sub 3.2

Wenn man auf einen bestimmten Link / Menüpunkt drückt, muss nicht unbedingt ein Submenü kommen, sondern z.B. eine entsprechende Seite. In dem Fall sollen sich alle Teile wieder schliessen.

Hat jemand einen Denkanstoß für mich? Die Menüpunkte sollen nicht aus einer DB oder Datei kommen, sondern stehen ganz banal im Quellcode (mit z.B. einem Array). Ideen?
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten


Alt 25.01.2004, 02:47   #2
Guest
 
Registriert seit: Aug 2002
Strogij hilft, wo's gehtStrogij hilft, wo's geht
Dann müsstest du die aktuelle Position z.B. per GET übergeben (im Frame-Fenster, wie es oft zu sehen ist), ich finde die Idee mit PHP nicht wirklich toll, da sowas in JS viel angebrachter wäre was die Problematik angeht. Was spricht denn gegen JS? Mit PHP muss jedes mal die neue Seite generiert werden, was unter Umständen nervig erscheinen kann.
Strogij ist offline   Mit Zitat antworten
Alt 25.01.2004, 09:28   #3
TP-Greis
 
Benutzerbild von Boris
 
Registriert seit: Mar 2001
Ort: Berlin, Germany
Boris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKEBoris ist ein richtiges Arbeitstier - DANKE
Das soll ja auch passieren, dass jedes Mal die Seite dabei neu geladen wird. Das Menü wird in einem Frame drin stehen.

Das ist nicht für mich, sondern für einen Bekannten.
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris
Boris ist offline   Mit Zitat antworten
Alt 25.01.2004, 21:19   #4
TP-Supporter
 
Registriert seit: Feb 2003
Ort: Bremen
H3ck|0 ist auf einem guten Weg
Ich hab eine Menü Funktion. Die Menüeinträge stehen bei mir in ner MySQL Datenbank.

Funktioniert rekursiv und theoretisch über beliebig viele Ebenen.
Als Ausgabe kommt ne Liste raus die nach belieben per CSS gestaltet werden kann...
Ne Eingabemaske existiert dazu noch nicht.. Und die 3 Ebenen... darauf muss man halt selbst achten..
PHP-Code:
<?php

function menu ($table$path$indent="1"$prefix="0")
{
   global 
$connection;     //Datenbank Verbindung

   
echo '<ul>';

   
$entry '<li style="%s"> <a href="%s%s">%s</a> </li>';

/* Pfad Angaben aufsplitten */
   
$path_rec explode(".",$path);
   
$parentid $path_rec["0"];
   unset(
$path_rec["0"]);
   
$path_array $path_rec;
   
$path_rec implode(".",$path_rec);

/* Inhalt der Kategorie aus der Datenbank lesen */
   
$sql "SELECT * FROM ".$table." WHERE parentid='".$parentid."' ORDER BY showid ASC;";
   if (
$debugmode == 1) { echo $sql; };
   
$result mysql_query($sql,$connection);

   while (
$line mysql_fetch_array($result))
   {
/* type == 0 => Kategorie ausgeben */
      
if ( $line["type"] == )
      {
/* Geöffnete Kagetorie ausgeben */
         
if ($line["id"] == $path_array["1"])
         {
/* Parent Kategorie ausgeben */
            
$uri "?cat=".$prefix;
            if (isset(
$_GET["p"]))
            {
               
$uri.="&amp;p=".$_GET["p"];
            };
            
printf($entry,
                   
"text-indent: ".($indent 10 10)."px;"$PHP_SELF,$uri,$line["name"]
            );

/* REKURSIV AUFRUF! Gibt Inhalt der geöffneten Kind Kategorie aus. */
            
menu($table$path_rec$indent 1$prefix.".".$path_array["1"]);
/* REKURSIV AUFRUF! Gibt Inhalt der geöffneten Kind Kategorie aus. */

         
} else {
/* Nicht geöffnete Kategorien öffnen */
            
$uri "?cat=".$prefix.".".$line["id"];
            if (isset(
$_GET["p"]))
            {
               
$uri.="&amp;p=".$_GET["p"];
            };
            
printf($entry,
                   
"text-indent: ".($indent 10 10)."px;"$PHP_SELF,$uri,$line["name"]
            );
         };
/* type == 1 => Link ausgeben */
      
} elseif ( $line["type"] == ) {
         
$url $line["url"];
         
$uri "";
         
printf($entry,
                
"text-indent: ".($indent 10 10)."px;"$url,$uri,$line["name"]
         );
      };
   };

   echo 
'</ul>';
};

menu("menu",$_GET["cat"]);

?>
Code:
MySQL Tabelle:
CREATE TABLE `menu` (
  `id` int(3) NOT NULL auto_increment,
  `name` text NOT NULL,
  `parentid` int(2) NOT NULL default '0',
  `showid` int(2) NOT NULL default '0',
  `type` int(1) NOT NULL default '0',
  `url` text NOT NULL,
  PRIMARY KEY  (`id`)
);
Bedeutung:
name - Menü Eintrag
parentid - Kategorie unter der ein Eintrag angezeigt wird
showid - Danach wird die Struktur sortiert
type - {0;1} 0 = Kategorie | 1 = Link
url - Wenn type = 1 ist dann muss hier der Link eingetragen werden.
__________________
The truth You hear may not be the truth You think it is

Geändert von H3ck|0 (25.01.2004 um 21:22 Uhr).
H3ck|0 ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Kleines dynamisches Menü mit max. 3 Ebenen Kleines dynamisches Menü mit max. 3 Ebenen
« Insert Into ?? | User in mySQL-Datenbank eintragen »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:41 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67