[PHP] Makierten Text Formatieren.

CWPA

Ensign
Registriert
März 2005
Beiträge
205
Hallo,

ich möchte das so machen das wenn ich in meiner Textarea etwas makiere und dann auf das Symbol klicke das dann der text, mit dem befehl umschlossen wird.
Wenn ich, mit makiertem text, auf das symbol klicke kommt die Formatierung dahinter.
welchen code brauch ich dafür.

Der code wird so ins Textarea eingefügt:

HTML:
<img src="Editor_Button_Fett.gif" width="26" height="24" onclick="document.getElementById('eingabefeld').value += '[b] [/b]'">

und so die Ausgabe:

PHP:
$ausgabe = str_replace("[b]", "<b>", $ausgabe);
$ausgabe = str_replace("[/b]", "</b>", $ausgabe);
 
Sowas lässt sich mit PHP nicht lösen, da PHP eine serverseitige Sprache ist.

Du musst eine clientseitige Sprache verwenden, wie JavaScript.
 
zatarc schrieb:
Sowas lässt sich mit PHP nicht lösen, da PHP eine serverseitige Sprache ist.

Du musst eine clientseitige Sprache verwenden, wie JavaScript.


darum geht es doch nicht, er machts doch schon soweit richtig, aber er möchte halt, dass der die Textformatierung ([b][/b]) um den markierten text eingefügt wird (so wie es z.b. hier der fall ist) und nicht hinter den text (also da wo der aktuelle cursor ist.

also er will [b]markierter Text[/b] statt markierter Text[b][/b] wenn ich das richtig verstanden habe, und das geht natürlich nur mit javascript, so hat er es aber auch bei der "eingabe" gemacht!

kann dir leider aber auch nicht helfen, da ich mich in JS nicht auskenne
 
Wenn du das mit JS machen willst, dann kannst du das mit execCommand() machen. So wird es auch in diesem Forum gemacht. (siehe JS Source Files)
Du musst aber zuerst einen Text Range erstellen.

BSP:
HTML:
var txtRange = document.getElementById('TxtFld').selection.createRange();
txtRange.execCommand('Copy');
Wie du den Befehl in deinem Fall anpassen musst, kann ich dir zurzeit nicht sagen, aber ich bin mir sicher Mr. Google wird dir helfen...

Edit:
wenn du einen WYSIWYG Editor machen willst, dann kann ich dir einen Blick in den Quellcode des vBulletin Editors empfehlen (siehe quelltext)
 
Muuhmann schrieb:
darum geht es doch nicht, er machts doch schon soweit richtig, aber er möchte halt, dass der die Textformatierung ([b][/b]) um den markierten text eingefügt wird (so wie es z.b. hier der fall ist) und nicht hinter den text (also da wo der aktuelle cursor ist.

also er will [b]markierter Text[/b] statt markierter Text[b][/b] wenn ich das richtig verstanden habe, und das geht natürlich nur mit javascript, so hat er es aber auch bei der "eingabe" gemacht!

kann dir leider aber auch nicht helfen, da ich mich in JS nicht auskenne

"Titel:
PHP:
 Makierten Text Formatieren."
 
Hallo, CWPA,


folgendes aus der Hüfte geschossen:

Code:
<script language="JavaScript" type="text/javascript">
<!--
	function setTag(tag, tag1) {
	var txtRange = document.selection.createRange().text ;
	test.value = test.value.replace(txtRange, tag + txtRange + tag1);
	}
//-->
</script>
<textarea name="test" id="test" rows="10" cols="80">ich möchte das so machen das wenn ich in meiner Textarea etwas makiere und dann auf das Symbol klicke das dann der text, mit dem befehl umschlossen wird.
Wenn ich, mit makiertem text, auf das symbol klicke kommt die Formatierung dahinter.
welchen code brauch ich dafür.</textarea><br/>
<input type="button" value="Strong" onclick="setTag('<strong>', '</strong>')">


Viel Spaß :-)

lg
Hurga

PS: Hui, beinahe was vergessen. "document.selection.createRange().text" funktioniert ausschließlich im IE - mal wieder ne Extrawurscht. Der Mozilla zum Beispiel versteht die JS Funktion document.getSelection(). Das ist leichter. Musst halt den Browser abfragen vorher und dann die richtige Funktion verwenden.
 
Zuletzt bearbeitet:
Zurück
Oben