Wolfskin: Zeilen ausfahren

Hallo,
ich arbeite gerade mit JavaScript und muss feststellen, dass ich zu wenig Durchblick habe.
Ich will mit durch ein Mausklick eine Zeile an die Tabelle anfügen bzw. einblenden. Da der Inhalt der Zeilen aus einer Datenbank stammen, dachte ich mir, dass man die Zeilen evt. vordefiniert und bei bedarf einblendet (bei Mausklick).
Ich wüsste nicht wie es sonst funktionieren würde ohne das PHP-Script neu zu laden.
Die Zeile/Zeilen sollen bei erneuten Mausklick sich wieder ausblenden.

Mein Ansatz war folgender:

<script language= "JavaScript">
<!--
function schreiben()
{
var text2 = document.createTextNode('Eine nette Begüßung');
document.getElementById('c').appendChild(text2);
}

function loeschen()
{
var text = document.getElementById('c').firstChild;
text = document.getElementById('c').removeChild(text);
}

function init()
{
document.getElementById('a').onclick = schreiben;
document.getElementById('b').onclick = loeschen;
}
//-->
</script>
<body onLoad="init();">

<table border>
<tr>
<td id="a">open</td>
</tr>
<tr>
<td id="b">close</td>
</tr>
<tr>
<td id="c"></td>
</tr>
</table>

Leider habe ich es nicht hinbekommen, das es sich beu erneuten Mausklick auf die gleiche Zeile wieder einfährt. Vieleicht ist der ganze Ansatz auch falsch. Das Problem ist, das ich diesen Effekt auf bis zu 15 Tabellen auf einer Seite brauche. Diese Tabllen erhalten wiederum ihren Inhalt aus einer Datenbank (auch die aus/einblend-Zeile).

  1. Hallo,

    Die Zeile/Zeilen sollen bei erneuten Mausklick sich wieder ausblenden.

    Das könntest du mit einer if-Abfrage machen:

    var el = document.getElementById('c');  
      
    document.getElementById('a').onclick = function(){  
     if (el.hasChildNodes()){  
      löschen();  
     }  
     else{  
      schreiben()  
     }  
    }
    

    <script language= "JavaScript">
    <!--

    Das „language= "JavaScript"“ ersetzt du bitte durch „type="text/javascript"“.

    Den Kommentar kannst du löschen, wenn du den NS 2 /IE 3 nicht unterstützen willst.

    <body onLoad="init();">

    Den Eventhandler kannst au auch in's Script verfrachten. Einfach

    window.onload = init;

    mfg. Daniel

    1. Das „language= "JavaScript"“ ersetzt du bitte durch „type="text/javascript"“.

      Den Kommentar kannst du löschen, wenn du den NS 2 /IE 3 nicht unterstützen willst.

      Meines Wissens kann Netscape 2 schon Javascript, oder?
      IE 3 auf jeden Fall, der Kommentar ist für noch ältere Browser nötig.

      Struppi.

      --
      Javascript ist toll (Perl auch!)
      1. Hallo,

        Meines Wissens kann Netscape 2 schon Javascript, oder?
        IE 3 auf jeden Fall, der Kommentar ist für noch ältere Browser nötig.

        Oops, ich meinte eigentlich:
        Netscape < 2 sowie IE < 3

        mfg. Daniel

      2. Hello out there!

        der Kommentar ist für noch ältere Browser nötig.

        Nein.

        Wer benutzt noch solche veralteten Browser? Und wenn, dann ist die Anzeige des JavaScript-Quelltextes wohl das kleinste aller Darstellungsprobleme.

        See ya up the road,
        Gunnar

        --
        „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
        1. der Kommentar ist für noch ältere Browser nötig.

          Nein.

          ok, nötig ist das falsche Wort, es hat nur dort ein Wirkung.

          Wer benutzt noch solche veralteten Browser? Und wenn, dann ist die Anzeige des JavaScript-Quelltextes wohl das kleinste aller Darstellungsprobleme.

          Mittlerweile klappt das ganz gut, hin und wieder schmeisse ich Netscape 3 an (natürlich mit abgeschaltetem JS) und freue mich über die Geschwindigkeit. Da viele Seiten, eine relativ gute HTML Struktur haben, ist die Darstellung meistens i.O.

          Struppi.

          --
          Javascript ist toll (Perl auch!)