rsc22: Dynamische Dropdownmenüs mit XML

Hi,

ich habe ein Dropdownmenü, frei nach dem Beispiel von
http://www.dynamicdrive.com/dynamicindex1/dropdowncontrol.htm
implementiert.
Jetzt würde ich die Einträge gern dynamisch gestalten. Das heißt:
ich habe eine XML-Datei aus der ich meine Einträge auslese und hätte diese gern als Menüpunkte in meinem Dropdown.

Ist das irgendwie machbar? Eigentlich müsste ich ja nur irgendwie mein div mit den Links verändern.

Wäre für jeden Denkanstoß dankbar!

  1. Wenn du die Menüpunkte aus einer XML-Datei beziehst gehe ich davon aus, dass diese in einer ordentlichen Struktur vorliegen - was spricht also dagegen, auch den HTML-Code entsprechend <http://de.selfhtml.org/css/layouts/navigationsleisten.htm@title=ordentlich zu strukturieren>?

    1. Wenn du die Menüpunkte aus einer XML-Datei beziehst gehe ich davon aus, dass diese in einer ordentlichen Struktur vorliegen - was spricht also dagegen, auch den HTML-Code entsprechend <http://de.selfhtml.org/css/layouts/navigationsleisten.htm@title=ordentlich zu strukturieren>?

      Leider verstehe ich nicht auf was du hinaus willst. Ich finde mein HTML-Code ist ordentlich strukturiert.

        
      <div id="submenuComponent" onmouseover="abbruchTimer()" onmouseout="timerBeenden()">  
           <a href="" onclick="changeStylesheet( 'a' )">Placeholder 1</a>  
           <a href="" onclick="changeStylesheet( 'b' )">Placeholder 2</a>  
           <a href="" onclick="changeStylesheet( 'c' )">Placeholder 3</a>  
           <a href="" onclick="changeStylesheet( 'd' )">Placeholder 4</a>  
      </div>  
      
      

      Dadurch sind die Menüeinträge jedoch fest vorgegeben. In meinem XML sind aber oftmals neue Einträge vorhanden oder ander fehlen. Deswegen will ich das dynamisch machen.

      Vielleicht sollte ich noch sagen, dass mein HTML-Code per XSL aus der XML-Datei generiert wird.

      1. Mahlzeit rsc22,

        <div id="submenuComponent" onmouseover="abbruchTimer()" onmouseout="timerBeenden()">
             <a href="" onclick="changeStylesheet( 'a' )">Placeholder 1</a>
             <a href="" onclick="changeStylesheet( 'b' )">Placeholder 2</a>
             <a href="" onclick="changeStylesheet( 'c' )">Placeholder 3</a>
             <a href="" onclick="changeStylesheet( 'd' )">Placeholder 4</a>
        </div>

        Deine <div>-Suppe mit <a>-inlage möchte ganz dringend eine http://de.selfhtml.org/html/text/listen.htm#aufzaehlung@title=Liste sein!

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Hi,

          alles klar, ich werde eine Liste drauß machen.
          Aber hilft mir das auch bei meinem Problem weiter?

          MfG

          1. Mahlzeit rsc22,

            alles klar, ich werde eine Liste drauß machen.

            Das ist gut.

            Aber hilft mir das auch bei meinem Problem weiter?

            Ja. Weil Dein Code nämlich bisher - im Gegensatz zu Deiner Behauptung - eben *nicht* ordentlich strukturiert war. Er war eine gruppierendes Element mit einer nicht näher spezifizierten Ansammlung von Kindelementen.

            Jetzt handelt es sich hingegen um eine vernünftige semantische Struktur.

            Dein eigentliches Problem ist schwer lösbar, solange Du nur erzählst, dass der "HTML-Code per XSL aus der XML-Datei generiert wird" und nicht erklärst, was Dein eigentliches Problem überhaupt ist ...

            Du hast eine XML-Datei, in der die einzelnen Einträge Deines Menüs ist? Du hast eine XSL-Datei, die aus der XML-Datei eine HTML-Datei macht? Was ist dann Dein Problem? Was verstehst Du unter "Deswegen will ich das dynamisch machen."?

            Willst Du die einzelnen Menüpunkte aus einer anderen Datenquelle lesen? Vielleicht eine, in der sich die vorhandenen Menüpunkte besser pflegen lassen (Du sprachst von "neuen" bzw. "fehlenden" Einträgen)?

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. Hey EKKi,

              vielen Dank schonmal. Ich versuch das mal genauer zu erklären.
              Also ich habe eine XML-Datei deren Inhalt von einem Programm generiert wird. Je nachdem wie dieses Programm ausgefüht wurde hat die XML-Datei einen anderen Inhalt.

              Wenn ich jetzt aus dem XML meine Komponenten die in diesem XML vorkommen ausgelesen habe, sollte aus diesen Komponenten das Dropdown-Menü erstellt werden.
              Ich weiß also vorher nicht wie mein Menü aussehen wird.

              Meine Frage ist also wie ich meine gefundenen Komponenten als Links in die angelegte Liste bekomme, sodass mein Javascript Dropdown dann diese anzeigt.

              Ich hoffe das war verständlicher.

              Mfg rsc22

              1. Mahlzeit rsc22,

                Also ich habe eine XML-Datei deren Inhalt von einem Programm generiert wird. Je nachdem wie dieses Programm ausgefüht wurde hat die XML-Datei einen anderen Inhalt.

                Du hast also (vereinfacht mindestens) zwei XML-Dokumente - das eine enthält die einzelnen Menüpunkte, und das andere definiert irgendwie alles andere außenherum?

                Dein Problem ist jetzt, dass Du beim Transformieren des "äußeren" XML-Dokuments mittels XSL in ein HTML-Dokument gerne den Inhalt des anderen XML-Dokuments als einzelne Menüpunkte in das HTML-Dokument einbinden willst?

                Dann hast Du aber mitnichten ein Javascript-, sondern vielmehr ein XSL-Problem. Da ich mich damit nicht genügend auskenne, um hilfreich zu sein, verabschiede ich mich mal aus dem Thread ...

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
  2. Hi,

    ich habe eine XML-Datei aus der ich meine Einträge auslese und hätte diese gern als Menüpunkte in meinem Dropdown.

    Ist das irgendwie machbar? Eigentlich müsste ich ja nur irgendwie mein div mit den Links verändern.

    Wäre für jeden Denkanstoß dankbar!

    AJAX/XMLHttpRequest plus DOM-Methoden - zum Auslesen der Elementknoten aus dem XML, und zum Erzeugen und Einhängen neuer Elemente in das HTML-Dokument.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.