Moin nochmal!
Funktioniert aber nicht mit dem Code, den du da ausgibst. Die Funktion MM_Showhidelayers() ist dazu da, auf Klick oder Mouseover einen Layer einzublenden oder zu verstecken. Wenn der Layer von Beginn an unsichtbar sein soll, mußt du das mit CSS lösen, ersatzweise auch onload mit Javascript.
Es funzt durch MouseOver nicht durch ein Klick wenn ich bei der IF-Abfrage mich nur auf eine menuid beschränke.
if($menuid == 2)
{
//----- Sichtbar -----
echo "<a href="#" onMouseOver="MM_showHideLayers('Layer2','','show')">".$menu."</a>";
}
else
{
//----- nicht Sichtbar -----
echo "<a href="#" onMouseOver="MM_showHideLayers('Layer2','','hide')">".$menu."</a>";
}
So wie ich auch die anderen menuid abfragen will geht es nicht mehr
wie schon geschildert
Der Code, den du produzierst, macht folgendes:
Die Seite wird geladen, alle Layer sind entsprechend den Vorgaben des CSS sichtbar oder unsichtbar.
Du hast Links, welche auf das Überfahren der Maus reagieren.
Die einen Links sind in der Lage, ihren zugeordneten Layer anzuzeigen. Aber _nur_ das. Der Layer wird niemals mehr verschwinden, weil der passende Mouseout-Code fehlt.
Die anderen Links sind in der Lage, ihren zugeordneten Layer zu verstecken, aber nicht, ihn anzuzeigen. Der Layer wird nur schwerlich wieder sichtbar zu machen sein.
Wenn ich mir überlege, daß es sich um ein Menü handelt, dann halte ich es für ungünstig, gewisse Layer nur einzublenden und gewisse andere Layer immer nur auszublenden. Da kann irgendwas nicht funktionieren.
Mein Tipp: Mach's so wie die Profis - bastel erstmal nur eine HTML+Javascript-Seite und baue dann mit PHP gewisse Datenbankinformationen nachträglich ein. Ich habe so das Gefühl, dir ist noch nicht ganz klar, was du da _wirklich_ produzierst, welchen Einfluß PHP auf die Seite und deren Funktion hat und was Javascript da regelt.
Wenn das mit dem Problem gelöst ist dann komme ich auch darauf zurück, danke, aber nach dem viel hin und her ist dies für mich zum Verstehen das einfachste
Ich denke, dein Problem ist ein anderes, als du bisher glaubst. Aber du mußt natürlich selbst wissen, wieviel Energie du da reinstecken willst. :)
Um festzustellen, welchen Wert gewisse Variablen haben, die nicht das tun, was sie sollen, empfiehlt es sich, diese Variablen mit echo bei jedem Programmschritt auszugeben - wahlweise sogar mit der Funktion var_dump() (macht es leichter, komplexe Variablen wie Arrays zu sichten -> http://www.php.net/manual/de/function.var-dump.php).
Dann mußt du nur noch in den Quelltext im Browser gucken, sofern er diese Angabe nicht schon gerendert anzeigt, und weißt, was PHP auf dem Weg so macht.
- Sven Rautenberg