2 von einander abhängige Dropdowns

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 2 von einander abhängige Dropdowns

    Hi Leute,

    habe ein Skript, das ein Menü verwaltet (mit MySQL). Also ich habe ein Hauptmenü, ein Untermenü und ein Unter-Untermenü.

    Hauptmenü ist kein Problem. Dem Untermenü weise ich dann das Hauptmenü zu, damit es darunter steht - auch kein Problem. Schwierig wird es dann, wenn ich das Unter-Untermenü anlege. Diesem will ich ein Hauptmenü und ein Untermenü zuweisen.

    Angenommen ich habe aber 20 Hauptmenüs und 50 Untermenüs (kein hypothetisch, dann wäre es sinnvoll, wenn ich zuerst mal das Hauptmenü auswähle (Dropdown) und, wenn ich das dann ausgewählt habe, sollten die Untermenüs so eingegrenzt werden, dass nur mehr die kommen, die dem oben ausgewählten Hauptmenüpunkt zugewiesen sind, denn sonst bekomme ich ein Dropdownmenü mit 50 Einträgen, obwohl eigentlich z.B. nur 7 dem oben gewählten Hauptmenüpunkt zugewiesen sind und ich diese gar nicht verwenden kann.

    Ist das verständlich? Nun meine Frage: Wie könnte ich das lösen, dass ich das 2. Dropdownmenü (Untermenü) eingrenze?

    Es müsste jeder Eintrag mit deinem Link verknüpft sein, der dann die aktuelle Seite nochmal aufruft und an die URL einen Vermerk hängt, dass nur mehr die Untermenüs ausgegeben werden sollen, die mit dem Hauptmenü verknüpft sind. Nur kann man einem Droptownfeld ja standardmäßig keinen Hyperlink zuweisen, oder?

    Danke & Greetz Lukas

  • #2
    lege eine tabelle nach diesem muster an.

    id -> INT
    parent_id -> INT
    name -> VARCHAR

    und wenn du noch ein wenig nachdenkst, kommst du ganz schnell auf die lösung. ;-)

    hier noch ein paar demodaten.

    1 - 0 - home
    2 - 1 - news
    3 - 1 - guestbook
    4 - 2 - news verfassen
    5 - 2 - news lesen
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hi Abraxax,

      ich glaube aus meinem Beitrag geht nicht ganz klar hervor, dass ich das Menü bereits fertig erstellt habe. Also wie ich das Menü in der DB aufbaue ist mir klar... Es geht mir um eine Art Verwaltungstool dafür. Sorry, habe mein Problem schlecht erklärt.

      Ich möchte dieses Menü in einer Art CMS verwalten können. Hierzu wähle ich für das Unter-Untermenü das Hauptmenü aus. Jetzt möchte ich auch noch das Untermenü auswählen, aber schon durch die Hauptmenüwahl eingeschränkt!

      Danke! Greetz Lukas

      Kommentar


      • #4
        du möchstest alle punkte innerhalb von news wissen.

        WHERE parent_id = 2

        wo ist denn das problem?
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Meinste sowas? Link

          Forumregeln!

          Gute PHP-(tutorial-)Seiten

          Kommentar


          • #6
            ja. so kann man das machen. aber warum JS nehmen. mit php kannst du das auch machen. musst halt eben nur die seite neu aufrufen. ;-)

            und .... wenn du mal viele punkte hast, musst du nicht alle komplett in das JS schicken.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Gut, wenigstens wisst ihr mal, was ich brauche, das ist gut! Danke!

              So etwas in der Art, was davidovich mir gegeben hat, brauche ich ja.

              @Abraxax

              Wie kann ich die Seite neu aufrufen? Da muss ich doch jedem Dropdown-Eintrag einen Link zuweisen, oder?

              Danke, Lukas

              Kommentar


              • #8
                Wie kann ich die Seite neu aufrufen? Da muss ich doch jedem Dropdown-Eintrag einen Link zuweisen, oder?
                kennst du die event-handler?
                also, onmouseover, onmouseout, ... da findet sich bestimmt auch einer, der auf einer veränderung des dropdowns reagiert.
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  @derHund

                  Eventhandler sagen mir prinzipiell schon etwas, auch wenn ich sie fast nie angewendet habe... Habe mir mal diese Liste angeschaut:

                  http://selfhtml.teamone.de/javascrip...enthandler.htm

                  Leider nichts zu Dropdowns

                  Weißt du vielleicht, wie man dem Dropdownmenü links zuweisen kann? Geht das?

                  Danke, Lukas

                  Kommentar


                  • #10
                    Original geschrieben von skalu
                    Leider nichts zu Dropdowns
                    blöde ausrede für zu wenig suchen ...


                    http://selfhtml.teamone.de/javascrip...r.htm#onchange
                    und die beispiele ab http://selfhtml.teamone.de/javascrip...selected_index liefern doch wohl auch genug anhaltspunkte, welcher event-handler sich anbieten könnte, oder?
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      das könnte u.u. daran liegen, daß das element select nicht wirklich ein eventhandler ist ...
                      Die Zeit hat ihre Kinder längst gefressen

                      Kommentar


                      • #12
                        Okay, ich habe das Beispiel von davidovich nun so umgebaut, dass PHP dieses JS generiert und es funkt

                        Danke trotzdem an alle Poster!

                        Greetz Lukas

                        Kommentar


                        • #13
                          Das Beispiel von davidovich funktioniert bei mir leider nur mit 2 Dropdowns, ich brauche aber 3 bzw. möglicherweise 5...

                          hier mal der JS Code:

                          PHP-Code:
                          <form name="doublecombo">
                          <
                          p><select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
                          <
                          option>Starke Seiten</option>
                          <
                          option>Tolle Seiten</option>
                          <
                          option>Such Seiten</option>
                          </
                          select>
                          <
                          select name="stage2" size="1">
                          <
                          option value="index.php3?opencat=Gästebuch">Gästebuch</option>
                          <
                          option value="index.php3?opencat=Impressum">Impressum</option>
                          </
                          select>
                          <
                          input type="button" name="test" value="Go!" onClick="go()"></p>
                          <
                          script>
                          <!--
                          //Dieses Skript stammt von Michael Mailer´s JavaScripts
                          //URL: [url]http://www.webaid.de/js[/url]  --  eMail: [email]mm@webaid.de[/email]
                          //Bitte   entfernen   Sie   diesen   Vermerk   nicht  !
                          var groups=document.doublecombo.example.options.length
                          var group=new Array(groups)
                          for (
                          i=0i<groupsi++)
                          group[i]=new Array()

                          group[0][0]=new Option("Gästebuch","index.php3?opencat=Gästebuch")
                          group[0][1]=new Option("Impressum","index.php3?opencat=Impressum")
                          //group[0][2]=new Option("HotBot","http://www.hotbot.com")

                          group[1][0]=new Option("webAID","http://www.webaid.de")
                          group[1][1]=new Option("con.firm","http://www.jswelt.de")

                          group[2][0]=new Option("Hotbot","http://www.hotbot.com")
                          group[2][1]=new Option("Infoseek","http://www.infoseek.com")
                          group[2][2]=new Option("Excite","http://www.excite.com")
                          group[2][3]=new Option("Lycos","http://www.lycos.com")

                          var 
                          temp=document.doublecombo.stage2

                          function redirect(x){
                          for (
                          m=temp.options.length-1;m>0;m--)
                          temp.options[m]=null
                          for (i=0;i<group[x].length;i++){
                          temp.options[i]=new Option(group[x][i].text,group[x][i].value)
                          }
                          temp.options[0].selected=true
                          }

                          function 
                          go(){
                          location=temp.options[temp.selectedIndex].value
                          }

                          //-->
                          </script>
                          </
                          form
                          Ich nehme an, die Generierung der Group-Tags wird einfach um einen Array-Wert erweitert:

                          group[0][0][0]=new Option("Gästebuch","index.php3?opencat=Gästebuch") ?>

                          Nur wie ich den Rest ändern muss weiß ich nicht, ich kann leider kein JS und verstehe die function redirect(x) nicht... Kann mir da vielleicht jemand helfen?


                          Danke Lukas!

                          Kommentar


                          • #14
                            Für 3 Combos habe ich folgendes gefunden:

                            http://javascriptkit.com/script/scri...plecombo.shtml

                            Forumregeln!

                            Gute PHP-(tutorial-)Seiten

                            Kommentar


                            • #15
                              Super, danke erstmal, ich werde mir das ansehen!

                              Greetz Lukas
                              Zuletzt geändert von skalu; 03.06.2004, 15:17.

                              Kommentar

                              Lädt...
                              X