Klappmenü

Hallo,
ich befinde mich grade in den Anfängen zu PHP und MySQL.
Ich habe mir eine Datenbank erstellt mit Listen
Bsp.:

ID | Text | Unterpunkt von
1 Begriff A 0
2 Begriff B 0
3 Begriff C 1
4 Begriff D 2

usw…

Unterpunkt 0 bedeutet es handelt sich um eine Überschrift
In diesem Falle würde die ausgegeben Liste wie folgt aussehen:

**Begriff A**
Begriff C
**Begriff B**
Begriff D

Nun würde ich gerne die Oberbegriffe auf- und zuklappbar machen,
weiß aber nicht wie ich das am einfachsten mache.
Es soll möglich sein mehrere Punkte gleichzeitig aufgeklappt zu haben.
Wer kann mir Tipps geben wie’s am sinnvollsten zu lösen ist?

Cookies?
variablen Übergabe?
Temporäre Datenbank / Tabelle?

Danke für Hilfe und Tipps

Gruß

Marcel

Hallo,
ich befinde mich grade in den Anfängen zu PHP und MySQL.
Ich habe mir eine Datenbank erstellt mit Listen
Bsp.:

ID | Text | Unterpunkt von
1 Begriff A 0
2 Begriff B 0
3 Begriff C 1
4 Begriff D 2

usw…

Unterpunkt 0 bedeutet es handelt sich um eine Überschrift
In diesem Falle würde die ausgegeben Liste wie folgt aussehen:

Begriff A
Begriff C
Begriff B
Begriff D

Nun würde ich gerne die Oberbegriffe auf- und zuklappbar
machen,
weiß aber nicht wie ich das am einfachsten mache.
Es soll möglich sein mehrere Punkte gleichzeitig aufgeklappt
zu haben.
Wer kann mir Tipps geben wie’s am sinnvollsten zu lösen ist?

Cookies?
variablen Übergabe?
Temporäre Datenbank / Tabelle?

Hallo,

Es gibt die Möglichkeit, das Ganze per javascript zu machen.

Wenn du jeweils die Seite neu laden willst, dann ist es kein Problem (Übergab der Variablen), einziges Problem ergibt sich, wenn du mehrere offen haben willst. Dann eignet es sich als ids nur primzahlen einzusetzen, also:

ID | Text | Unterpunkt von
2 Begriff A 0
3 Begriff B 0
5 Begriff C 1
7 Begriff D 2
11 Begriff E 2

Dann kannst du nämlich die Zahl 6 übergeben und dein Skript weiss, dass er ID 2 und ID 3 öffnen muss. Das ist nun ein Denkansatz, wahrscheinlich kannst du ab hier auch alleine weiterkommen. Wenn nicht, melde dich.

Gruss, Omar Abo-Namous

Hallo Omar Abo-Namous

Es gibt die Möglichkeit, das Ganze per javascript zu machen.

Javascript möchte ich nach möglichkeit vermeiden, da dieses ja auch immer abhängig von den Browsereinstellungen ist.

Wenn du jeweils die Seite neu laden willst, dann ist es kein
Problem (Übergab der Variablen), einziges Problem ergibt sich,
wenn du mehrere offen haben willst. Dann eignet es sich als
ids nur primzahlen einzusetzen, also:

Hmm, also das Verfahren mit den Primzahlen verstehe ich, gefällt mir nur nicht *g*
Aber zur Not frisst der Teufel auch Fleigen, oder wie war das?

OkiDoki,
werde mal weiter forschen und ggf. die Primzahlmethode testen.

Vielen Dank für den Denkansatz…

Gruß

Marcel

warum id’s?
einfach ein kleines Script schreiben, das alle variablen ausliest
(foreach)
damit dann den kompetten get bzw post string rekonstruieren und in der schleife die gesetzten Variablen überprüfen.
Wenn Variable $button1 gesetzt ist wird das halt in nem array o.ä. festgehalten.

Weiter unten wird dann die id wieder überprüft, ob sie im array ist und wenn ja wird der Zweig auch angezeigt…
Dann muss man halt an jeden Link die übergebenen Variablen (ausser der navigierenden) mit anhängen bzw bedenken, dass die bei erneutem klick wieder weg sein soll…

bissl umständlich vllt, aber ist halt ne lösung ohne Primzahlen :wink:

Hallo munichfreak,
ich habe mir mal die Links für die einzelenen Oberthemen von wer-weiss-was angeschaut, sieht so aus als wäre das so, bzw. äöhnlich wie du sagtest, liege ich da richtig? *g*
Denke auch so werde ich es machen

Gruß

Marcel

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Problem erledigt
Hallo munichFreak und alle lesenden,
habe das Problem gelöst, so umständlich war’s dann auch wieder nicht,
habe im link immer eine kommagetrennte Auflistung mit den geschlossenenen Zweigen mitgegeben. Denke mal so wie hier bei www…
Das ganze dann über arrays geprüft, ob zweig auf oder zu und ggf entsprechend die liste erweitert.
Klappt bisher prima.

Gruß und Danke für entsprechende Tipps

Marcel

Beachte bitte, dass im $_GET nur eine bestimmte Länge gelesen werden kann (ich glaub 256 Zeichen). d.h. dein Baum darf nicht allzu lang sein.

Und scheinbar ist dein Baum nur eine Ebene tief, denn sonst wäre es schwierig, die „geschlossenen“ Zweige aufzulisten. Vielleicht ist es sinnvoll die offenen Zweige zu übergeben?!

Gruss, Omar Abo-Namous *, der dir immer noch rät, dir die Geschichte mit den Primzahlen anzuschauen*

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Beachte bitte, dass im $_GET nur eine bestimmte Länge gelesen
werden kann (ich glaub 256 Zeichen). d.h. dein Baum darf nicht
allzu lang sein.

Oh, Danke, gut zu wissen…

Und scheinbar ist dein Baum nur eine Ebene tief, denn sonst
wäre es schwierig, die „geschlossenen“ Zweige aufzulisten.

richtig, der Baum ist nur eine Ebene tief…

Vielleicht ist es sinnvoll die offenen Zweige zu übergeben?!

käme doch auf’s gleiche raus, schließlich können alle Zweige offen sowie geschlossen werden, das bedeutet das die Maximale Übergabe bei beiden gleich groß sein kann…

Gruss, Omar Abo-Namous *, der dir immer noch rät, dir die
Geschichte mit den Primzahlen anzuschauen*

Ist wahrscheinlich nicht so komfortabel, da auch neue Zweige von anderen Usern angelegt werden können, werde das aber nochmal überdenken…

Danke, Gruß

Marcel