Zum Inhalt springen

Aufklappbare Liste?


Ladon

Empfohlene Beiträge

Hallo

ich will eine Liste erstellen (mit Unterpunkten), bei der man jeden einzelnen Menüpunkt

einzeln aufklappen kann.

Wenn man dann auf einen anderen Menüpunkt, also kein Unterpunkt, klickt, sollte der andere wieder automatisch einklappen.

Also Grundstruktur sieht eben so aus:

<menu name="Dokumentationen">

<item name="JAP" href="/jap/index.html" collapse="true">

<item name="Dokumentation" href="/beta/one/index.html"

collapse="true"/>

<item name="Download" href="/beta/two/index.html"

collapse="true"/>

</item>

<item name="Virenscanner" href="/jap/index.html" collapse="true">

<item name="Dokumentation" href="/beta/one/index.html"

collapse="true"/>

<item name="Download" href="/beta/two/index.html"

collapse="true"/>

</item>

</menu>

Hoffe es kann mir jemand helfen.

Vielen Dank

Ladon

Link zu diesem Kommentar
Auf anderen Seiten teilen

kann man das nicht mit XML realisieren?
Lass mal überlegen: Du bist hier im Forum Webdesign. Beim Webdesign bleibt dir als Präsentationsmittel "nur" HTML für die statischen Elemente, und JavaScript für Änderungen im Dokument, die auf eine User-Eingabe hin erfolgen sollen.

Vielleicht verstehe ich dich einfach nur falsch, aber für mich sieht es deutlich danach aus, als wenn du dich erstmal mit den Grundlagen beschäftigen solltest um überhaupt zu verstehen, was für möglichkeiten du in einer Internetseite hast, was die Präsentation angeht und welche Möglichkeiten du eben nicht hast.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

ich bin absolut kein Fan von Lösungen, die nur bei speziellen Benutzern funktionieren - nämlich den Leuten, die Javascript eingeschaltet haben und dann auch noch einen Browser haben, der das so umsetzt wie ich es mir vorstelle.

Die Alternative zu Javascript ist php und CSS.

Link zu diesem Kommentar
Auf anderen Seiten teilen

...kein Fan von Lösungen, die nur bei speziellen Benutzern funktionieren

....Die Alternative zu Javascript ist php und CSS.

Mal kurz offtopic dazu....

"Spezielle Benutzer" sind mittlerweile diejenigen, die JavaScript nicht aktiviert haben, zumindest laut Statistik:

JavaScript

JavaScript1.5 99.4%

JavaScript1.3 0.4%

JavaScript1.4 0.2%

JavaScript1.2 0.0%

Java

aktiviert 96.2%

nicht aktiviert 3.8%

CSS

aktiviert 100.0%

nicht aktiviert 0.0%

Cookies

aktiviert 98.3%

nicht aktiviert 1.7%

...und ausser php und css gibts auch noch ne Menge anderer Sachen...

Und wenn wir schon dabei sind: Benutzereingaben, die beispielsweise Frame-übergreifen sind, sind nur mit Clientseitigen Scripten in den Griff zu kriegen, also JavaScript beispielsweise.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi

Hallo,

ich bin absolut kein Fan von Lösungen, die nur bei speziellen Benutzern funktionieren - nämlich den Leuten, die Javascript eingeschaltet haben und dann auch noch einen Browser haben, der das so umsetzt wie ich es mir vorstelle.

Die Alternative zu Javascript ist php und CSS.

Ich würde auch zu einer XML + PHP + CSS Lösung tendieren.

Diese sind zudem Barrierefrei.

Also:

- mit PHP XML Strukutr auslesen und analysieren

- Struktur als <ul> <li> Liste ausgeben

- CSS für <ul> <li> Liste erstellen

- fertig :)

Gruß,

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich würde auch zu einer XML + PHP + CSS Lösung tendieren.
Wenn ich allerdings einen Baum mit 50 und mehr Einträgen habe, dann wird es schonmal schnell recht unübersichtlich. Mal ganz davon abgesehen, dass du so nette Dinge wie Aufklapp-Zuklapp-Effekte ohne JavaScript vergessen kannst.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich allerdings einen Baum mit 50 und mehr Einträgen habe, dann wird es schonmal schnell recht unübersichtlich. Mal ganz davon abgesehen, dass du so nette Dinge wie Aufklapp-Zuklapp-Effekte ohne JavaScript vergessen kannst.

Naja, bei größeren Bäumen sollte natürlich eine entsprechende Kategorisierung durchgeführt werden.

Auf und zuklappen geht auch mit PHP... Muss man halt die Seite neuladen,..

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mal kurz offtopic dazu....

"Spezielle Benutzer" sind mittlerweile diejenigen, die JavaScript nicht aktiviert haben, zumindest laut Statistik:

...und ausser php und css gibts auch noch ne Menge anderer Sachen...

Und wenn wir schon dabei sind: Benutzereingaben, die beispielsweise Frame-übergreifen sind, sind nur mit Clientseitigen Scripten in den Griff zu kriegen, also JavaScript beispielsweise.

Benutzereingaben, die das Layout betreffen, lasse ich in der Regel weg aber wenn man sie unbedingt haben will und man unbedingt mit Frames arbeiten will, dann von mir aus auch mit Javascript.

Da ich nie mit Frames arbeite und mein Layout entweder über Div's oder Tabellen gestalltet wird, stellt sich für mich dieser Gedanke aber gar nicht erst.

Allerdings würde ich nie auf den Gedanken kommen Eingaben aus Eingabefeldern, etc Clientseitig zubearbeiten. Selbst eine Pflichtfeldvalidierung läuft bei mir Serverseitig.

Zu Deiner Statisitk möchte ich Mal sagen, dass ich deren Ursprung nicht kenne und deswegen dazu nichts sagen kann/ möchte. Ich möchte nur generell auf den Unterschied in der Sicherheit zwischen Server und Clientseitigen Scripten hinweisen. Mir ist vollkommen klar, dass das Serversetige auch keine 100% Sicherheit bietet aber es ist sicherer als wenn ich alles dem Client und den da getätigten Einstellungen überlasse. Mal ganz davon abgesehen, dass eine Clientseitige Lösung gern mal gestohlen werden kann. Der HTML- Code läuft zwar Clientseitig aber meine Programmlogik ist nicht sichtbar.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Auf und zuklappen geht auch mit PHP... Muss man halt die Seite neuladen,..

Und das ist halt der riesen Nachteil; und der Grund wieso ich NIEMALS ein Menue so realisieren wuerde...

Reloads in einem Formular, in dem 'abhaegige Felder' bspw. neu berechnet werden sollen -> OK !

Aber wenn ich einen Baum oeffnen will -> nein Danke

Da muss ne Clientseitige Scriptsprache verwenden -> JS,

und tut mir leid, aber wer JS an seinem Client deaktiviert hat, hat Pech gehabt, das ist paranoid!

gruss / zirri

Link zu diesem Kommentar
Auf anderen Seiten teilen

Und das ist halt der riesen Nachteil; und der Grund wieso ich NIEMALS ein Menue so realisieren wuerde...

Reloads in einem Formular, in dem 'abhaegige Felder' bspw. neu berechnet werden sollen -> OK !

Aber wenn ich einen Baum oeffnen will -> nein Danke

Da muss ne Clientseitige Scriptsprache verwenden -> JS,

und tut mir leid, aber wer JS an seinem Client deaktiviert hat, hat Pech gehabt, das ist paranoid!

gruss / zirri

Naja, man kann es auch so implementieren, dass wenn Javascript aktiviert ist, der Baum per JS auf/zuklappt und bei Leuten die dies deaktiviert haben, müssen eben mit den Ladezeiten leben.

Alternativ ist natürlich ein Menu mit CSS und Layern... Das geht überall, aus bei Screenreadern...

Gruß,

Markus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Beim Onlienbanking schalte ich gerne Mal JS aus und ich kenne auch Leute die ohne JS in ebay unterwegs sind.

Abgesehen davon, bist Du Dir absolut sicher, dass selbst wenn der Client JS aktiviert hat, das JS in jedem Browser auch sauber ausgeführt wird?

Zudem gibt es die weiter oben schon angesprochene Barriefreiheit. Bedeutet, dass behinderte Menschen sich auch den Inhalt einer Website ansehen können sollen. Wie vermittelst Du also einem Blinden, dass wenn er mit der Maus auf einen Link geklickt hat, nun weitere Unterpunkte sehen kann? Dazu sind informationen im Quellcode notwendig, damit der Screenreader die auslesen und es dem Blinden mitteilen kann. Diese Informationen bringen verständlicher Weise wohl wenig, wenn er noch gar nicht auf einen Link geklickt hat bzw. gar nicht diese Absicht hat. Man kann diese Information allerdings bequem in den Quellcode schreiben, wenn auf einen Link geklickt wurde.

Ein weiteres Beispiel ist es sicher zu gehen, dass der Benutzer auch wirklich die aktuelle Seite mit den akuellen Informationen sieht und nicht eine Seite in der sich Informationen schon geändert haben. Gerade bei dynamischen Inhalten macht das wohl auch Sinn.

Das sind nur 2 Beispiele, die mir spontan einfallen um eine Seite ruhig neu laden zu lassen.

Performance sollte eh keine Rolle spielen. Ob nun die Seite über ein Netzwerk mit min. 56k Bit Anbindung neu herruntergeladen wird oder aber ein JS auf dem Client läuft sollte Jacke wie Hose sein. Zudem man heute auch ruhig Mal von min. ISDN oder gar DSL als Standard ausgehen kann.

JS hat sicher seine Daseinsberechtigung aber es gibt ganz einfach manchmal vieleicht bessere Problemlösungen, die eh von der aktuellen Projektanforderung abhängig sind. Wenn ich in dem Projekt kein php nutzen kann, muss ich auch auf JS bzw. DHTML zurückgreifen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Abgesehen davon, bist Du Dir absolut sicher, dass selbst wenn der Client JS aktiviert hat, das JS in jedem Browser auch sauber ausgeführt wird?
Es läuft letzten Endes immer wieder auf diegleiche Frage hinaus: Welche Techniken will ich verwenden, und welche Techniken ist mein Zielkundenkreis (= die Besucher meiner Seite) bereit zu verwenden.

JavaScript komplett auszuschalten halte ich ebenfalls für komplett paranoid. Wirkliche Schäden kannst du damit eh nicht verursachen, das einzige was passieren kann sind nervige Popups und dergleichen. Dafür hat allerdings jeder vernünftige Browserâ„¢ die Möglichkeit JavaScript Aktionen selektiv aus- und evtl. wieder zuzuschalten.

Es ist doch die ganz einfache Frage: Wieviel Aufwand möchte ich reinstecken und welchen Komfort soll der Besucher beim Browsen haben. Natürlich kann ich einen Baum durch immer neues Nachladen der Seite neu aufbauen - natürlich geht es auch, dass ich nach dem Neuladen der Seite hinterher wieder an derselben Stelle im Dokument bin, wo ich vorher mit dem Lesen aufgehört habe - möglich ist das alles.

Aber wofür? Nur um alle Spezialfälle abzuhandeln und den 0,1% an Besuchern, die tatsächlich mit komplett ausgeschaltetem JavaScript durch die Weltgeschichte surfen auch eine halbwegs annehmbare Sicht zu bieten? Kein Problem, wenn mir mein Kunde das entsprechend bezahlt bekommt er meinetwegen auch eine Version, die unter Netscape 2.0 oder Lynx noch graphisch ansprechend aussieht.

Wenn ich jedoch die Wahl habe, dann sage ich durchaus diesen 0,1%, dass sie halt Pech gehabt haben. Man kann es nunmal (wenn man die Verhältnismäßigkeit der Mittel wahren will) nicht jedem Recht machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mal ganz davon abgesehen, dass du so nette Dinge wie Aufklapp-Zuklapp-Effekte ohne JavaScript vergessen kannst.

Ein Kollege hat mir vorhin gerade seinen "Explorer" gezeigt. Also eine Seite zur Auswahl bestimmter Daten, die in 2 Ebenen vorliegen. Der Aufbau ist ein Baum wie man ihn (u.a.) vom Windows-Explorer kennt. Auf- und zuklappen der einzelnen Knoten ist auch möglich. Reines php.

Darauf gekommen ist er, weil er sowas gesucht und als Javascript Lösung gefunden hatte. Diese Lösung lädt auch nicht alle Daten auf einmal, was man ohne neuladen ja bräuchte, sondern jedes Auf- bzw. Zuklappen lädt den Baum neu. Die JavaScript-Lösung benötigt dafür aber Frames, weil im Hauptframe Variablen definiert sind um einen reload zu überleben. Er hat das ganze dann umgebaut als reine PHP-Lösung (und in einer einzelnen Seite). Das neu Laden ist nicht so ein riesen Problem, da ja vorallem Text übertragen wird, die einzelnen bilder sind ja schon im Cache.

Die Darstellung wird über Tabellen gemacht, also jede Zeile eine eigene Tabelle, nicht verschachtelt. Dies aber nur wegen der Darstellung (war im "Original" schon so). Da ein Inlineblock in CSS bisher nur von Opera verstanden wird, ist sowas mit CSS noch nicht auf die gleiche Weise möglich.

Quelle kann ich leider nicht rausgeben. Aber es geht mit PHP und sieht auch wirklich gut aus (und ist kaum Quelltext, ca. 2 Seiten).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es läuft letzten Endes immer wieder auf diegleiche Frage hinaus: Welche Techniken will ich verwenden, und welche Techniken ist mein Zielkundenkreis (= die Besucher meiner Seite) bereit zu verwenden.

Ich sage doch nichts anderes. Es geht mir nur darum, dass es alternativen gibt, die man bedenken sollte und nicht die einfachste unbedingt die beste oder gar die richtige ist.

Was die sicherheit von JS angeht. Ich halte nichts von Software die ohne meine Zustimmung herruntergeladen wird und dann irgendwas auf meinem PC macht, wie es bei Applets der Fall ist. Das halte ich nicht für paranoid sondern einen Windows- Benutzer, der keine Lust hat ständig sein Betriebssystem killen zu müssen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was die sicherheit von JS angeht. Ich halte nichts von Software die ohne meine Zustimmung herruntergeladen wird und dann irgendwas auf meinem PC macht, wie es bei Applets der Fall ist. Das halte ich nicht für paranoid sondern einen Windows- Benutzer, der keine Lust hat ständig sein Betriebssystem killen zu müssen.

[besserwissermodus]

Javascript kennt keine Applets. Javascript ist eine reine Skriptsparche, und die Skripte werden vom Webbrowser ausgeführt. Dabei sollten sie eigentlich in einer Art "Sandbox" ausgeführt werden, was einen Zugriff auf lokale Dateien unterbindet. Gedacht war Javascript urspr. dafür, statisches HTML dynamisch zu machen bzw. den dargestellten Seiten eine gewisse Dynamik und Interaktion zu geben.

EDIT:

Ausserdem wären mir eh keine Filesystem-Befehle o.ä. bekannt womit ein Javascript auf meinem Rechner irgendwas machen kann. Es ist eigentlich nur dazu da, mit der HTML-Seite innerhalb des Browsers etwas zu tun.

[/besserwissermodus]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was die sicherheit von JS angeht. Ich halte nichts von Software die ohne meine Zustimmung herruntergeladen wird und dann irgendwas auf meinem PC macht, wie es bei Applets der Fall ist.
Du solltest dich dringend über den Unterschied zwischen Java und JavaScript informieren.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Unterschied zwischen JS und Java ist mir schon geläufig. Ich wusste nur nicht, dass die Applets, die ich meinte, nicht mit JS geschrieben werden können.

Scheinbar doch nicht...

Sry, aber eine nicht wirklich qualifizierte Aussage!!

Also: Wissen aneignen

gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich kenne den Unterschied wirklich. Problem liegt eher bei dem unüberlegten Gebrauch von dem wort "Applet". Für mich ist ein Applet ein Programmschnippsel, dass nicht unbedingt in Java geschrieben ist. Ebenso muss man dafür für mich nicht unbedingt eine der höheren Sprachen verwenden. Programme, die ich in Clientseitigen php schreibe könnte man auch als Applets bezeichnen.

Javascript besitzt keine eigenen Funktionen zum Operieren im Filesystem, jedoch kann über JS nun ein Applet aufgerufen werden, dass das sehr wahrscheinlich kann.

Im übrigen ist es mir schon unangenehm, dass man mit JS das Surfverhalten eines Benutzers auslesen kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Im übrigen ist es mir schon unangenehm, dass man mit JS das Surfverhalten eines Benutzers auslesen kann.

Wie willst du das mit JS machen? Also dazu reicht ja auch eine PHP-Seite und ein Cookie. Ausserdem loggt der Apache z.B. eh alle deine Zugriffe und die Zeit im Access.log.

Also was meinst du mit Surfverhalten, was nicht eh irgendwo gespeichert wird?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Programme, die ich in Clientseitigen php schreibe könnte man auch als Applets bezeichnen.
Und jetzt erklärst du uns bitte noch, was clientseitiges PHP ist. Ich habe ja schon manches gehört aber das ist wirklich neu.

Javascript besitzt keine eigenen Funktionen zum Operieren im Filesystem, jedoch kann über JS nun ein Applet aufgerufen werden, dass das sehr wahrscheinlich kann.
So einfach ist es auch wieder nicht.

Erstmal kannst du über JavaScript kein Applet aufrufen. Du kannst Methoden eines bereits geladenen Applets aufrufen, aber damit letzten Endes auch nicht mehr machen, als das Applet selber. Die dazugehörige Technik nennt sich LiveConnect.

Und ein Applet selber darf erstmal auch nicht auf das Filesystem zugreifen. Wäre dies der Fall, so kannst du sicher sein hätte es schon etliche Probleme mehr gegeben. Du kannst ein Applet signieren, so dass es nach Zustimmung des Benutzers auf das Filesystem zugreifen kann. Es kann also keine Rede davon sein, dass irgendwer "einfach so" auf mein Filesystem oder meine Systemumgebung zugreifen kann.

Im übrigen ist es mir schon unangenehm, dass man mit JS das Surfverhalten eines Benutzers auslesen kann.
Du kannst mit JavaScript nicht das Surfverhalten des Users auslesen. Du kannst Dinge wie aktuell eingestellte Monitorauflösung, etc. auslesen - so what? Glaubst du ich habe auch nur den geringsten Nachteil, oder die geringste Datenschutzverletzung, dudurch, dass der Betreiber der Seite XYZ.de weiss, dass ich eine Auflösung 1280x1024 in 32bit Farbtiefe habe? Das ist doch lächerlich.

Das Surfverhalten lässt sich viel besser und viel detailierter anhand der Server Logs kontrollieren, und da habe ich Client überhaupt keine Möglichkeit einzugreifen. Doch halt, eine Möglichkeit gibt es: Das Internet gar nicht erst verwenden, dann bekommt auch niemand mit, wo ich surfe.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich meine damit die Funktion history()

Ich gehe nach ebay, klicke mich da durch ein paar Artikel, gehe auf die Website von zum Beispiel einen großen Warenkonzern. Die könnten nun die Browserhistorie auslesen und sehen für welche Produkte ich mich interessieren könnte. Banales Beispiel ist klar aber wer lässt es schon gerne zu, dass dessen Privatspähre untersucht wird?

Ein anderes Beispiel wäre wohl, ich besuche mein Homebanking und mache dann einpaar Fehler wie zum Beispiel:

nicht die shtml- Verbindung zu benutzen

mich nach dem Homebanking nicht auszuloggen

im gleichen Browser weiter zu surfen

Da kommt die Frage auf, was ist wohl alles gerade im Browser und meinen Temp- Files gespeichert?

Mir ist klar, dass man erstmal so dumm sein muss diese ganzen Fehler zu machen aber weiß jemand genau, dass niemand so dumm ist?

Edit:

Es gibt so genannte "Compiler" für php. Die übersetzen zwar nicht den php- Code in Maschinensprache aber erzeugen eine exe und verbinden diese mit dem php- Interpreter und unter umständen auch noch mit den Bibliotheken für GTK. So entsteht eine vergleichsweise große Anwendung, die aber dennoch in bestimmten Bereichen, schneller läuft als zum Beispiel Java.

Es gibt Leute die meinen php könnte auch Clientseitig mit Erfolg eingesetzt werden. Ich bin eher der Meinung, dass es da andere Lösungen gibt und probiere es nur aus um die Funktionsweise und das Objektmodel von GTK zuverstehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast
Dieses Thema wurde nun für weitere Antworten gesperrt.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...