Hallo Leuts,
ich muß eine Baumstruktur entwickeln mit Hilfe von MySql
Leider ist die Anzahl der Unterpunkte nicht definiert.
Darum hab ich ein wenig gegoogelt und bin auf Nested Sets gestoßen
Hier mal ein Link dazu:
Das 'Nested Sets' Modell - B�ume mit SQL PHP Script resource Tutorials, Workshops und Artikel
Das klappt ja auch wunderbar. Jedoch sollte es so sein das man
wie im Explorer den Baum auf- und zuklappen kann (also mit + und -)
Leider krieg ich das einfach nicht hin!
Vielleicht kann mir ja einer helfen. Bitte!
Mfg
PS: Leider kann ich keine Anhänge anfügen, darum wer
den Quelltext mal haben möchte von dem was ich schon umgesetzt habe,
möge mal bitte Bescheid sagen.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Tree View
Einklappen
Neue Werbung 2019
Einklappen
X
-
schau mal nach objektorientierter programmierung... das ist das was er meint. Du könntest auch jedem id noch ner klasse zuweisen um die styles leichter verändern zu können...
-
Hallo,
und könntest du mir vielleicht auch sagen wie man das macht?
Mfg
Einen Kommentar schreiben:
-
Auch wenn dieser Post nicht so richtig zur Fragestellung passt:
Es ist für die Pflege, Verwaltung, Anzeige wesentlich einfacher ein Objekt-Baum aufzubauen!
In PHP geht das z.B. über DOM oder native Objekte.
Einen Kommentar schreiben:
-
Hallo,
also ich bin grad voll am coden
Jetzt hab ich allerdings mal ne Frage. Ich muß ja für alle ID's
das Style ändern. Also z.B. in Ebene2 gibt es zwei Einträge.
Diese haben dann folglich die ID Ebene2(zum Beispiel)
Wenn ich dann aber das Script ausführe zeigt er mir nur den 1. Wert an.
Wie kann ich das denn für alle Elemente dieser ID anwenden?
Mfg
Einen Kommentar schreiben:
-
Danke erst mal für die Tips.
Werde das mal versuchen umzusetzen.
Mal sehen wies klappt.
Melde mich dann wieder.
Wenn einer mal nen Lösungsansatz bzw. Codebeispiel mit dem Code
von oben basteln könnte wär das echt groß.
Bin für jede Hilfe dankbar.
Mfg
Einen Kommentar schreiben:
-
Ein Gast antwortetealso das javascript das ich oben gepostet habe verändert die css klasse eines html elements ( <li value_id"" level=""> wird wohl kaum valide sein)
also wenn du bei dem aufbau mit unsortierten listen bleiben willst dann brauchen deine child elemente alle die selbe klasse, bzw falls deine childelemente ne eigene ul sind dann brauch dieses ul eine spezifische klasse.
diese klasse bekommt ein display:none; damit sie vorerst nicht angezeigt wird. die javascript funktion einblenden() wird dann einfach dein display:none; verändern und zwar auf z.b. display:inline; wodurch der inhalt der klasse dann sichtbar wird.
Code:<ul id="derbaum"> <li><a href="javascript:einblendenA()">+</a> Elternelement A <ul class="elementeA"> <li>Kindelement A</li> </ul> </li> <li><a href="javascript:einblendenB()">+</a> Elternelement B .............. </li> </ul>
Code:.elementeA { display:none; }
theoretisch brauch man dann für jede kind-liste eine js funktion, was bestimmt auch über variablen zu automatisieren geht. aber da musste dann mal nen bisschen nach javascript suchen.
Einen Kommentar schreiben:
-
Und was ist mit dem Code? Funktioniert was nicht, wenn ja was? Vielleicht sind ein paar Kommentare in der Funktion auch praktisch um besser zu verstehen was du machst.
Einen Kommentar schreiben:
-
@dom:
Nochmals danke für die schnelle Antwort.
Hier mal der Code:
PHP-Code:function showNavi() {
$result = getNavi();
$level = 1;
$tree= "<ul id=\"NewTree\">";
while($row = mysql_fetch_array($result)) {
if ($row['level'] > $level)
$tree.= "<ul>";
else if ($row['level'] < $level)
$tree.= str_repeat("</li></ul>", $level-$row['level']);
else if ($level > 1)
$tree.= "</li>";
$tree.= "<li style='line-height:20px' value_id=\"".$row['id']."\" level=\"".$row['level']."\" input_id=\"".$row['root_id']."\" productgroupname=\"\" input_type=\"\"><span>".$row[2]." <a href=\"".$_SERVER["PHP_SELF"]."?site=admin&action=del&id=".$row[0]."\" onfocus=\"blur()\"><img src=\"img/del.png\" border=\"0\" title='Delete' width='10' height='11'></a>
<a href=\"".$_SERVER["PHP_SELF"]."?site=admin&action=insert&id=".$row[0]."\" onfocus=\"blur()\"><img src=\"img/insert.png\" border=\"0\" title='Add New' width='10' height='11'></a>
<a href=\"".$_SERVER["PHP_SELF"]."?site=admin&action=edit&id=".$row[0]."\" onfocus=\"blur()\"><img src=\"img/edit1.png\" border=\"0\" title='Edit' width='10' height='11'></a>
</span>";
$level = $row['level'];
} // while
$tree.= str_repeat("</ul>", $level-1);
return $tree;
}
Einen Kommentar schreiben:
-
Ein Gast antworteteaufbereitung fürs web:
ich denke deine frage hat im grunde nichts mehr mit php zu tun, da es um die reine visualisierungsebene geht....
naja das kannst du ganz einfach mit javascript machen. baumstrukturen stellt man für html z.b. mit definitionslisten da, die kann man auch ganz gut verschachteln. du nummerrierst die child elemente einfach durch
A
|-A1
|-A2
|--AA
|--AA1
<script>
function einblenden()
{
document.all.deineID.style.display="inline";
}
function ausblenden()
{
document.all.deineID.style.display="none";
}
</script>
Einen Kommentar schreiben:
Einen Kommentar schreiben: