Die einfachste Möglichkeit, die ich mir vorstellen kann, ist dass Du bei Deinem "Öffnen-Link" alle parentIDs mit übergibtst:
Dann musst Du das für die DB-Abfrage vorbereiten:
Ich beziehe mich jetzt auf das zweite Codebeispiel von mir. Dazu musst Du noch $mysqlOpenTree, $selectid und eine weitere Variable ($upperNodes) übergeben:
Ich habe das jetzt hier im Editor getippt, das kann also 'ne Menge Fehler enthalten, aber das Prinzip sollte funktionieren.
HTML:
<a href="...?selectid=0,2,4,7">Menüpunkt 2.4.7</a>
PHP:
if (empty($selectid)) {
$mysqlOpenTree="'0'";
$selectid=0;
} else {
$mysqlOpenTree=explode(',',$selectid);
$selectid=$mysqlOpenTree[sizeof($mysqlOpenTree)-1];
$mysqlOpenTree="'".implode("','",$mysqlOpenTree)."'";
}
PHP:
function menu(int parentID,string openTree, int selectID, string upperNodes) {
//eintraegeMitDieserParentID ermitteln:
$sql="SELECT .... WHERE parentID='".$parentID."' AND parentID IN (".$openTree.")";
foreach (eintraegeMitDieserParentID as eintrag) {
//eintrag ausgeben
$linkDiesesEintrags=$upperNodes.",".$IDdiesesEintrags;
//mit Vergleich von übergebener selectID und ID dieses Eintrags den Menüpunkt hervorheben
if ($parentID!=$selectID) {
menu(eintrag['ID'],$openTree,$selectID,$linkDiesesEintrags);
}
}
}
menu(0,$mysqlOpenTree,$selectid,'0')
Zuletzt bearbeitet: