Zeilen an Tabelle anfügen

Hi,

ich habe folgendes Problem: Mir liegt ein String der Form "<tr><td>*</td><td>*</td></tr>" vor. Die Stellen mit dem * variieren je nach User-Eingabe. Diesen String möchte ich jetzt an eine Tabelle anfügen, sodass also eine neue Zeile am Ende der Tabelle entsteht. Ich hätte es schon mit
Code:
tabelle.insertAdjacentText("BeforeEnd", zeile);
versucht, jedoch ohne sichtbaren Erfolg :( (tabelle ist das Table-Objekt, zeile ist der String)
insertRow() fällt IMHO auch weg, da ich damit zwar eine neue Zeile erstellen, aber nicht so einfach auf den Inhalt des tr-Tags zugreifen kann.
Die Idee, die ich eigentlich zuerst hatte, war ja, die Tabelle anfangs offen zu lassen (</table> weglassen) und die Zeile dann per document.write() anzuhängen. Aber Pustekuchen, beim ersten Aufruf von write() wird der gesamte Seiteninhalt überschrieben :(
Dazu sollte ich vielleicht auch noch sagen, dass das JS nicht in dem Dokument, in dem die Tabelle liegt, ausgeführt werden soll. (sondern über Frames)

Any ideas?



reima
 
hmm

ich würd das ganz einfach mit PHP machen
und nicht mit JS --> kommt vielleicht daher das ich JavaScript erst seit 2 oder 3 wochen lerne und php schon bisserl länger 3-)

und ich bin davon überzeugt das du auch php kannst
zumindest wenn du js kannst kannst auch in minutenschnelle php lernen

cya
 
@[23]^5^
Nee, PHP wär hier nur die Notlösung.
reima schreibt ja, dass der Zelleninhalt durch Usereingaben zustandekommt. Und dann müsste der Kram ja erst nochmal zum Server gesendet werden um ne neue Datei zu erstellen. Mit JS wäre also die bessere Lösung, da manns ja dann gleich sieht.


@reima
sorry no ideas :(
Nur über viele Umwege....

Gruss
DH
 
@Der Held: Richtig, ich will verhindern, dass man die komplette Seite nochmal neu vom Server laden muss. Das ganze ist für eine Art PHP-Chat gedacht. Und ein Refreshchat ist ja von gestern und überhaupt nicht 7337 ;)

@[23]^5^: Ja, ich kann PHP, sozusagen. Wenn du mal ganz unauffällig zu meinem Titel schielst... ;)
 
@Der Held: Was soll´s... ich hab jetzt mal meinen Titel etwas abgeändert ;-)

Wie meinst du das mit IRC einbinden? Auf einen PHP-Chat verzichten und ein Java-Applet raufhauen?
 
Naja, wenn du das per PHP realisierst, muss schliesslich sobald ne neue Zeile geschrieben wurde auch jeder Client die Seite neu vom Server laden, um den neuen Text zu sehen. Das ganze entweder über nen Timer oder über Reload - Button. Beides ist eher nicht so prickelnd.

Wenn du IRC einbindest, ehrlich gesagt keinen Plan ob das über nen Applet oder über irgendwas serverseitiges geschieht, dann wird die Seite nicht laufen neu vom Server geladen, sondern halt der Kram der vom Server kommt (oder besser da ankommt) in das "Chat-Fenster" geschrieben.

Find ich jetzt besser als ständige reloads.

Oder peil ich grad net worums geht?
 
Ok, ich versuch mal, meinen Plan etwas genauer zu erläutern:
Grundsätzlich gibt kann man ja mit PHP/Perl/ASP etc. zwei Arten von Chats realisieren: Stream-Chats und Reload-Chats.
Beim Stream-Chat besteht eine ständige Verbindung zwischen (Web-)Server und Client, in der die Nachrichten verschickt werden. Der Server bestimmt also, wann neue Daten geschickt werden.
Beim Reload-Chat wird immer nur dann eine Verbindung aufgebaut, wenn der Client neue Nachrichten abfragen will. In dem Fall bestimmt also der Client, wann neue Daten abgerufen werden.

Die erste Möglichkeit fällt für mich schon mal weg, da der Chat auch lokal auf meinem Rechner laufen soll (hat seine Gründe), und der notwendige flush()-Befehl unter Win32 nicht unterstützt wird.
Die Alternative mit dem Refresh ist unschön anzusehen, veraltet, trafficverschwendend usw.

Also wollte ich das folgendermaßen realisieren:
Es gibt drei Frames: Ein Eingabeframe, ein Frame mit den Chatnachrichten und ein unsichtbares Frame. Der Inhalt dieses letzten Frames ist ein PHP-Script, das sich, sagen wir, alle zwei Sekunden selbst aufruft (per Refresh-Metatag). Dieses PHP-Script checkt, ob für den jeweiligen Chatter neue Nachrichten vorliegen. Wenn dem so ist, soll ein JavaScript ausgegeben werden, das der Tabelle im Nachrichtenframe die neue(n) Message(s) hinzufügt.
Meine Lösung stellt also sozusagen eine Kreuzung aus den beiden o.g. Möglichkeiten dar.

Ich glaube, ich werde es jetzt dann so realisieren, dass das Nachrichtenframe anfangs leer ist. Und dann per write() die neuen Messages jeweils anhängen. Das hatte ich bisher ausgeschlossen, da wegen des Designs im Nachrichtenframe von Anfang an schon einige Tabellen vorhanden waren, die dann beim ersten write() gelöscht wurden.

Alles klar? :)
 

Neue Beiträge

Zurück