luti: kollabierende Liste (tree menu) mit AJAX: HowTo

Hallo,

ich möchte für die "Navigation" in einem Thesaurus mit ca. 3000 Einträgen gerne ein Menübaum erstellen, der sich beim Klick neben den Namen weiter öffnet bzw. schließt. Die Einträge werden mit PHP aus einer Datenbank ausgelesen.

Aufgrund der vielen Einträge dauert das Laden der Seite mit einer ganz normlane Liste bereits ca. 5 Sekunden (lokal), das von mir testweise verwendete JavaScript zum Kollabieren und Erweitern setzt nur wenig oben drauf. Daher dachte ich mir: AJAX muss her und die Einträge der nächsten unteren Ebene sollen erst beim Klick darauf geladen werden.

Ich habe das Beispiel hier gefunden, bringe es aber leider nicht zum Laufen, die Liste wird nicht ausgegeben. Im Netz geistern dutzende weiterer Skripte herum mit teils sehr umfangreichen Funktionen, die ich aber alle nicht brauch. Daher würde ich wohl selber Hand anlegen wollen und einen einfache AJAX-Menübaum erstellen. Ich kenne mich leider kaum mit AJAX aus und suche nun ein einfaches HowTo für genau diesen Zweck - weiß jemand Rat?

Dank und Gruß,
luti

  1. Om nah hoo pez nyeetz, luti!

    die Bibliotheken stehen zur Verfügung?

    Matthias

    --
    1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif
    1. Hallo,

      die Bibliotheken stehen zur Verfügung?

      ja, die habe ich heruntergeladen und entsprechend eingebunden, daran solte es eigentlich nicht liegen?! Wie würde ich das denn testen?

      Gruß,
      luti

      1. Om nah hoo pez nyeetz, luti!

        ja, die habe ich heruntergeladen und entsprechend eingebunden, daran solte es eigentlich nicht liegen?! Wie würde ich das denn testen?

        es gäbe dann Funktionen, die ins Leere laufen. Da müsste sich die Fehlerkonsole melden.

        Liegen die Daten in der erforderlichen Struktur vor?

        Um das Herumraten abzuschließen: online-Beispiel bitte.

        Matthias

        --
        1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif
        1. Hallo Matthias,

          es gäbe dann Funktionen, die ins Leere laufen. Da müsste sich die Fehlerkonsole melden.

          Nein, es gibt keine Fehlermeldungen.

          Liegen die Daten in der erforderlichen Struktur vor?

          Ja, das sollten sie ...

          Um das Herumraten abzuschließen: online-Beispiel bitte.

          Das geht leider momentan nicht, ich komme nicht in die Außenwelt :( Ich mache das dann morgen mal oder heute Abend. Wäre nett, wenn Du noch mal wieder in den Thread schauen könntest!

          Matthias

          Dank und Gruß,
          luti

        2. Hallo,

          Um das Herumraten abzuschließen: online-Beispiel bitte.

          So, nun habe ich es endlich geschafft, die Dateien hochzuladen. Es wäre schön, wenn noch mal jemand draufschauen könnte! Hier der Link (*)

          Dank und Gruß,
          luti

          (*) Bitte nicht im Original posten, danke! Wenn der Fehler gefunden wurde, werde ich den Weg nachvollziehbar aufzeigen.

          1. Om nah hoo pez nyeetz, luti!

            Hallo,

            Um das Herumraten abzuschließen: online-Beispiel bitte.

            So, nun habe ich es endlich geschafft, die Dateien hochzuladen. Es wäre schön, wenn noch mal jemand draufschauen könnte! Hier der Link (*)

            Ich kann den "Baum" nicht öffnen bzw. baum.xml zeigt dasselbe wie dein Link.

            Matthias

            --
            1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif
            1. Hallo,

              Ich kann den "Baum" nicht öffnen bzw. baum.xml zeigt dasselbe wie dein Link.

              Hm, das liegt daran, dass die Short-URL einen Slash angehängt hat ;( Sorry. Ohne den gehts - bzw. baum.xml liegt im gleichen Verzeichnis ...

              Dank und Gruß,
              luti

              1. Om nah hoo pez nyeetz, luti!

                Im PHP-Skript, das als Text-Variante nicht erreichbar ist (Error 404) steht

                <?php
                    $roottree = `/usr/bin/xsltproc  lwAjaxTree.xslt baum.xml`;
                    print $roottree;
                    ?>
                

                Bereits dies funktioniert nicht. Pfad? Konfiguration von PHP auf dem Server?

                Matthias

                --
                1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif
                1. Hallo,

                  Im PHP-Skript, das als Text-Variante nicht erreichbar ist (Error 404) steht

                  Ok, ich habe das Skript als TXT gespeichert unter "lwAjaxTree.php.txt".

                  <?php

                  $roottree = /usr/bin/xsltproc  lwAjaxTree.xslt baum.xml;
                      print $roottree;
                      ?>

                  
                  >   
                  > Bereits dies funktioniert nicht. Pfad? Konfiguration von PHP auf dem Server?  
                    
                  Dort steht dann:  
                    
                  ~~~php
                  <?php  
                      $roottree = `/treemenu lwAjaxTree.xslt baum.xml`;  
                      print $roottree;  
                  ?>
                  

                  Ich gehe davon aus, dass sich der erste Pfad auf den Pfad zum Skript bezieht - oder irre ich da???

                  Die PHP-Konfiguration ist in etwa wie diese hier.

                  Hilft das weiter?

                  Dank und Gruß,
                  luti

                  1. Hallo,

                    $roottree = /usr/bin/xsltproc  lwAjaxTree.xslt baum.xml;

                    Ok, daran wird es liegen. xsltproc — das ist ein "command line xslt processor" unter GNOME, siehe hier.

                    Toll, darauf hätte ja mal hingewiesen werden können in dem Beispiel! "Achtung, läuft nur auf GNOME!" Argh.

                    Hat jemand eine Idee, wie ich das Beispiel trotzdem nutzen kann??? Oder ich muss auf meine anfängliche Frage zurück kommen.

                    Dank und Gruß,
                    luti

                    1. Om nah hoo pez nyeetz, luti!

                      Ok, daran wird es liegen. xsltproc — das ist ein "command line xslt processor" unter GNOME,

                      der welche Aufgabe hat?

                      Hat jemand eine Idee, wie ich das Beispiel trotzdem nutzen kann???

                      Verzichte auf den xslt-Parser.

                      Matthias

                      --
                      1/z ist kein Blatt Papier. http://www.billiger-im-urlaub.de/kreis_sw.gif