Dynamischer Text mit Formatierungen

franzlst

Mitglied
Auf meiner neuen HP (http://franzl.r-u-s.de/neu/roboter.php [noch nicht fertig]) wird, wenn auf eines der Bilder geklickt wird, ein dazu passender Text dynamisch angezeigt. Allerdings möchte ich in diesem Text nun auch Formatierungen vornehmen, wie zB neue Zeile, Links, Fettschrift.

Wie mache ich das jedoch mit Javascript?

Bisher wird der Text mit PHP aus einer zum Bild gehördenden Textdatei ausgelesen und einer Javascriptfunktion übergeben, die mit
HTML:
document.getElementById("Botbeschreibung").childNodes[0].nodeValue = botbeschr;
den Text geändert hat. Formatierungen wie <br> etc. werden einfach als Text mit ausgegeben und nicht als HTML Code behandelt.

Kann mir jemand helfen?

Vielen Dank!
 
Hi,

vielleicht hilft Dir innerHTML weiter - im IE und Netscape kannst Du damit den HTML-Text eines Dokumentelementes (z.B. DIV) und damit auch Tags und Attribute zur Formatierung festlegen.

Gruß

P.S.: oder Du fügst den kompletten HTML-Code direkt mit PHP in das Dokument ein.
.
 
innerHTML kommt nicht in Frage, da das nur der IE unterstützt :-(

PHP ist auch schlecht, da hier bei jedem Klick die Seite neu geladen werden müsste.

Trotzdem thx
 
:) oh, stimmt, hab mich verlesen.

Na ja, Du könntest von PHP für jeden Inhalt ein eigenes DIV schreiben lassen und diese mit JS bei Bedarf ein- und ausblenden. Allerdings habe ich die Struktur Deiner Seite auch noch nicht 100%tig verstanden...


Gruß

.
 
Beim Auswählen einer Untermenüpunktes (unten rechts) wird die Seite neu geladen und eine Variable übergeben ($auswahl). PHP sucht anhand dieser Variablen im Bilder- und Texteverzeichnis nach den entsprechenden Informationen und übergibts die entsprechenden, zum Bild passenden bei Klick auf eines an die JavaScript Funktion bildurl, die folgendermaßen aussieht:
HTML:
function bildurl(verzeichnis, bildname, verzgross, botname, botbeschr, bildbeschr)
{
	if(bildname != " ")
	{
		window.document.getElementById("Mitte").src="Bilder/Roboter/" + verzeichnis + "/" + bildname;
		window.document.getElementById("Hilfe").href="./Bilder/Roboter/" + verzgross + "/" + bildname;
	}
	
	document.getElementById("Bildbeschreibung").childNodes[0].nodeValue = bildbeschr;
	document.getElementById("Botname").childNodes[0].nodeValue = botname;
	document.getElementById("Botbeschreibung").childNodes[0].nodeValue = botbeschr;
	document.getElementById("Botbeschreibung").childNodes[1].nodeValue = " ";
	document.getElementById("Botbeschreibung").childNodes[2].nodeValue = " ";
}

Die Funktion ändert dann die Texte, Bilder und Links entsprechen um (anhand der ID).

Schreibe ich eine Textdatei allerdings zB Zeilenümbrüche "<br>", dann erscheint auch beim Benutzer "<br>" und kein Zeilenumbruch, auch "\n" funktioniert nicht.
Ich weis jetzt schon, dass ich Elemente kreieren lassen kann, mit "createElement", was zB bei <br> auch recht einfach ist. Wie jedoch kann ich zB bei <a> - Elementen, Informationen wie src oder target einfügen, oder den Elementen ID's zuweisen?
 
Zuletzt bearbeitet:
Nix für ungut, aber die Aussagen
PHP ist auch schlecht, da hier bei jedem Klick die Seite neu geladen werden müsste.´
und
Beim Auswählen einer Untermenüpunktes (unten rechts) wird die Seite neu geladen
widersprechen sich in meinen Augen etwas... :confused:

Es mag vielleicht mit JS möglich sein, Browserübergreifend html-Inhalte zu ändern, aber wenn ich schon mit PHP arbeite, würde ich nicht unbedingt mit JavaScript rumspielen, höchstens, wenn ich alle Inhalte (ob sichtbar oder nicht) schon in der Seite vorliegen habe - dann aber bestenfalls durch das Ein- und Ausblenden dieser Inhalte.

Na ja, vielleicht weiß ja jemand anderes eine praktikable Lösung - ich durchschaue den Sinn des ganzen heute nicht so recht.

Gruß

.
 
Nix für ungut, aber die Aussagen
Zitat:
PHP ist auch schlecht, da hier bei jedem Klick die Seite neu geladen werden müsste.´

und
Zitat:
Beim Auswählen einer Untermenüpunktes (unten rechts) wird die Seite neu geladen

widersprechen sich in meinen Augen etwas...

Das Untermenü läd die Seite erneut, das ist richtig, aber wenn ich auf ein Bild klicke, soll sich die Seite nicht erneut geladen werden, sondern nur der Text geändert werden.
Wenn auf das Untermenü geklickt wird, werden ja rechts andere Bilder angezeugt.

Es mag vielleicht mit JS möglich sein, Browserübergreifend html-Inhalte zu ändern, aber wenn ich schon mit PHP arbeite, würde ich nicht unbedingt mit JavaScript rumspielen, höchstens, wenn ich alle Inhalte (ob sichtbar oder nicht) schon in der Seite vorliegen habe - dann aber bestenfalls durch das Ein- und Ausblenden dieser Inhalte.

Klingt interessant, wie mache ich das (ein- und ausblenden)?
 
Klingt interessant, wie mache ich das (ein- und ausblenden)?
wenns z.B. ein DIV ist:
HTML:
document.getElementById(div_id).style.visibility = "hidden"; // oder "visible";

Gibt noch diverse andere Möglichkeiten (z.B. über display:none bzw. wie Du das Element ansprichst) - sonst findest Du das bestimmt auch bei SelfHtml.

Gruß

.
 
Zurück