Mattes: Ich bekomme das DIV nicht auf display:none

Beitrag lesen

echo ("<div id="".$row[8]."d1_nebenzeilen" style="display:"><br>".$row[12]."</div>");

style="display:" ist zwar nicht dein Problem, aber Unsinn. Hast du, wie hier, keine Eigenschaftsangabe, dann lass' sie ganz weg.

<img ... onclick="show('".$row[8]."d1','".$row[8]."d0')">

Dieses vermischen von HTML und Javascript halte ich für fehlerträchtig und rate, es zu vermeiden. Außerdem bläht es den Code auf, und dies ganz gewaltig, wenn du davon "Dutzende" Einträge hast.
Solche Ereignisbehandlung kann man auch fein in DOMContentLoaded mit einer kleinen zweizeiligen Schleife an die Elemente pappen. Übersichtlicher als dieses PHP/HTML/Javascript-Kauderwelsch da oben ist das allemal.

Und mein JS Code sieht dann so aus:

function hide_or_schow(a,b) {
if (document.getElementById(a).style.display == 'none') {
...
document.getElementById(a+'nebenzeilen').style.display = 'none';

Das kann nicht funktionieren. Jetzt mal abgesehen davon, dass du offenbar vor einem ziemlichen Durcheinander sitzt – hier heisst deine Funktion mal show(), dann hide_or_schow() (mit Rechtschreibfehler), in deinem Nachschieber sind dann _nebenzeilen verschwunden, stattdessen taucht dort _artikeltext auf –:

Wenn du deine zu versteckenden Elemente row8d1_nebenzeilen nennst, wirst du sie in der show()-Funktion kaum mit row8d1nebenzeilen (ohne Unterstrich) ansprechen können.

Sollte es daran nicht liegen, was ja nicht unwahrscheinlich ist, wenn du in zwei Beiträgen schon drei verschiedene Versionen deines Codes präsentierst, dann prüfe javascriptseitig, welche Elemente greifbar sind. Du hast dein Verstecken von row8d1nebenzeilen zum Beispiel von row8d1 abhängig gemacht:

if (document.getElementById(a).style.display == 'none') {

Was gibt denn document.getElementById(ŕow8d1) aus? Prüfe mit console.log. Zumindest Firebug hat auch einen Javascript-Debugger eingebaut, in dem du Haltepunkte setzen und prüfen kannst, ob Variablen bzw. das DOM an diesen Stellen deinen Erwartungen entspricht.