tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
666
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Aug 2002
    Beiträge
    419
    Moinsen,

    ich hab ne Datenbank, aus der sollen die Menüpunkte ausgelesen werden, die Anzeige wäre in etwa so:

    Das Team | Der Standort

    Nun gibt es zu diesen Menüpunkten unterpunkte. Diese sollen mittels Mausklick oder Mouseover ausgefahren werden.

    Das Problem dabei ist, das die Ganze Sache dynamisch ist ( also das man mittels ACP Menüpunkte hinzufügen kann etc.))

    Wie könnte dies gehen?
     

  2. #2
    Registriert seit
    Dec 2001
    Beiträge
    4.791
    1) JavaScript ist NICHT Java. Ich habe diesbezüglich den Threadtitel geändert.

    2) Überlege dir wie der Code aussehen würde, wenn du das Menü statisch programmieren würdest. Es wird in dem Code wohl eine gewisse Wiederholungsstruktur zu finden sein, für die einzelnen Menüpunkte.
    Diese generierst du dann über entsprechende Schleifen-Konstruktionen.
     

  3. #3
    Registriert seit
    Aug 2002
    Beiträge
    419
    Stimmt, Java != Java Script :ugly:

    Das ist ja das Problem mit der Wiederholungsstruktur.

    Manchmal gibt es 6 Menüpunkte, manchmal auch nur 4.
    Manchmal gibt es keine Menüunterpunkte und manchmal halt 6 etc.

    Ausserdem bin ich nen ziemlicher in Sachen Java Script.
     

  4. #4
    Registriert seit
    Aug 2002
    Beiträge
    419
    PHP-Code:
    <?php

        
    require "inhalt.php";
        
    $cat    =     $_GET["cat"];
    ?>
    <html>
    <head>
    <script type="text/javascript">
    <!--

    function show(divid) {
    document.getElementById("cat1").style.display="none";
    document.getElementById("cat2").style.display="none";
    document.getElementById("cat3").style.display="none";
    document.getElementById("cat4").style.display="none";
    document.getElementById("cat5").style.display="none";
    document.getElementById("cat6").style.display="none";



    document.getElementById(divid).style.display="inline";

    }
    //-->
    </script>

    </head>
    <body>
    <?php
        
        $sql         
    "select id, name, parent_ID as Kategorie from menue where parent_id = ".$cat ."";
        
    $result        mysql_query($sql);
        echo 
    "<table border='0' align='right' cellspacing='0'cellpadding='0'><tr><td>";
        while(
    $data mysql_fetch_assoc($result))
        {
            echo         
    "<td class='menue_top'><tr><a class='menue' href='#' onclick=/'show('cat"$data["bid"]."')/'> ".$data["name"]."</a></tr></td> ";
            
    $beitrag    "select bid,name, text from beitraege where menue_id = "$data["id"] ."";
            
    $ergebniss    mysql_query($beitrag);
            
            for(
    $i=0mysql_num_row $i$i++)
            {
                
    $data2 mysql_fetch_assoc($ergebniss);
                    echo 
    "<tr><td><div id='cat $i'><a class='menue' href='index.php?cat="$data2["bid"]."'> ".$data2["name"]."</a></div></tr>";
            } 
            
        
        }
        echo 
    "</td></tr></table>";
    ?>

    </body>
    </html>
    Ich habe mir jetzt das DHTML Menü Tutorial zugrunde gelegt und wollte dies umschreiben, leider klappt es auch nicht, müsste aber doch eigentlich, oder?

    So habe es mal editiert, wie mache ich " in PHP, ist mir leider entfallen , denn ich glaube daran hapert es in der Tabelle.

    Aber warum klappt er nicht mal auf?
    Geändert von Muffinmampfer (04.02.04 um 16:07 Uhr)
     

  5. #5
    Avatar von Sebastian Wramba
    Sebastian Wramba Sebastian Wramba ist offline Mitglied Smaragd
    Registriert seit
    Sep 2001
    Ort
    Essen (NRW)
    Beiträge
    1.218
    PHP-Code:
    echo         "<td class='menue_top'><tr><a class='menue' href='#' onclick=/'show('cat"$data["bid"]."')/'> ".$data["name"]."</a></tr></td> "
    Diese Zeile ist sowieso eher unschön... und außerdem escaped man mit \ und nicht mit / ...

    ergo:

    PHP-Code:
    echo "<td class=\"menue_top\"><tr><a class=\"menue\" href='#' onclick=\"show('cat"$data["bid"]."')\"> ".$data["name"]."</a></tr></td>"
     
    <Florian> Ihr seit alles so Real Life Ruler, oder?
    <SirRobin> Lineale?

  6. #6
    Registriert seit
    Aug 2002
    Beiträge
    419
    So ok, hab es mal geändert.

    Geht leider immer noch nicht.

    PHP-Code:
    <?php

        
    require "inhalt.php";
        
    $cat    =     $_GET["cat"];
    ?>
    <html>
    <head>
    <script type="text/javascript">
    <!--

    function show(divid) {
    document.getElementById("cat1").style.display="none";
    document.getElementById("cat2").style.display="none";
    document.getElementById("cat3").style.display="none";
    document.getElementById("cat4").style.display="none";
    document.getElementById("cat5").style.display="none";
    document.getElementById("cat6").style.display="none";

    document.getElementById(divid).style.display="inline";

    }
    //-->
    </script>

    </head>
    <body>
    <?php
        
        $sql         
    "select id, name, parent_ID as Kategorie from menue where parent_id = ".$cat ." order by name desc";
        
    $result        mysql_query($sql);

        while(
    $data mysql_fetch_assoc($result))
        {
            echo         
    "<table border='0' align='right' cellspacing='0' cellpadding='0'><tr><td class='menue_top'><a class='menue' href='#' onclick=\"show('cat"$data["id"]."')\">".$data["name"]."</a>";
            
    $beitrag    "select bid,name, text from beitraege where menue_id = "$data["id"] ."";
            
    $ergebniss    mysql_query($beitrag);
            
    $num        mysql_num_rows($ergebniss);
            
            while(
    $data2 mysql_fetch_assoc($ergebniss))
            {
                    
                    echo 
    "<div id=\"cat"$data["id"] ."\" style=\"display:none\"><a class='menue' href='index.php?bid="$data2["bid"]."'> ".$data2["bid"]."</a></div>";
            } 
            
        echo 
    "</td></tr></table>";
        }
        
    ?>

    </body>
    </html>
    Also eigentlich müsste es gehen .
     

  7. #7
    Registriert seit
    Aug 2002
    Beiträge
    419
    So ich habs nochmal überarbeitet, nun müsste eigentlich stimme,
    er schliesst die Tabellenzelle auch schon, aber sobald man loslässt geht sie wieder auf

    PHP-Code:
    <?php

        
    require "inhalt.php";
        
    $cat    =     $_GET["cat"];
    ?>
    <html>
    <head>
    <script type="text/javascript">
    <!--

    function show(divid) {
    document.getElementById("cat1").style.display="none";
    document.getElementById("cat2").style.display="none";
    document.getElementById("cat3").style.display="none";
    document.getElementById("cat4").style.display="none";
    document.getElementById("cat5").style.display="none";
    document.getElementById("cat6").style.display="none";

    document.getElementById(divid).style.display="inline";

    }
    //-->
    </script>

    </head>
    <body>
    <?php
        
        $sql         
    "select id, name, parent_ID as Kategorie from menue where parent_id = ".$cat ." order by name desc";
        
    $result        mysql_query($sql);

        while(
    $data mysql_fetch_assoc($result))
        {
            echo         
    "<table border='0' align='right' cellspacing='0' cellpadding='0'><tr><td class='menue_top'><a class='menue'  href='index.php?menue="$data["id"]."&cat="$data["Kategorie"] ."' onclick=\"show('cat1')\">".$data["name"]."</a><br>";
            
    $beitrag    "select bid,name, text from beitraege where menue_id = "$data["id"] ."";
            
    $ergebniss    mysql_query($beitrag);
            
    $num        mysql_num_rows($ergebniss);
                     
            echo 
    "<div id=\"1\" style=\"display:none\">";
            while(
    $data2 mysql_fetch_assoc($ergebniss))
            {
                    
                    echo 
    "<a class='menue' href='index.php?bid="$data2["bid"]."&cat="$data["Kategorie"] ."'> ".$data2["name"]."</a><br>";

            } 
            echo 
    "</div>";

        echo 
    "</td></tr></table>";
        }
        
    ?>

    </body>
    </html>
    So hier die Fehlermeldung aus Firebird:

    Fehler: document.getElementById("cat1") has no properties
    Quelldatei: http://localhost/firma2/index.php?cat=2&status=aktiv
    Zeile: 36

    Und ne Info:

    Deprecated method document.getSelection() called. Please use window.getSelection() instead.
    Geändert von Muffinmampfer (05.02.04 um 10:33 Uhr)
     

  8. #8
    Registriert seit
    Aug 2002
    Beiträge
    419
    Wenn es hier keiner weiß, wo gibt es Leute die wissen wie mein Problem zu lösen geht?
     

Ähnliche Themen

  1. Javascript Menü was den FF liebt aber den IE nicht will
    Von bensky im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 05.11.07, 16:16
  2. Javascript pulldown Menü funktioniert nicht im IE aber mit Firefox
    Von philipphammer im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 17.06.07, 22:58
  3. Javascript / CSS-Menü klappt auf aber nicht mehr zu
    Von Medienoperator im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 08.02.07, 15:51
  4. JavaScript Menü - aber wie?
    Von bigfella im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 19.09.06, 13:05
  5. Menü mit Javascript
    Von goodfella im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 24.01.05, 19:57