Text in Textarea

m0rb

Mitglied
Tag zusammen,

ich weiss, es gibt schon viele Themen zu ähnlichen Fragen, aber ich hätte da doch ein etwas spezielleres Problem:
Ich möchte in meinem Forum eine Funktion einbaun, um Beiträge zu zitieren. Nun soll das aber nicht wie bei vielen anderen Seiten per PHP, also auf einer neuen Seite gelöst werden, sondern der Beitrag soll per JS direkt in eine textarea eingefügt werden. Ich hab das auch schon soweit gelöst, dass man Beiträge in denen keine Zeilenumbrüche vorkommen, zitieren kann; sobald allerdings in dem Beitrag ein Absatz vorkommt, produziert meine kleines "Skript" den Fehler "Error: unterminated string literal"... Da ich leider wenig bis gar keine Ahnung von JS habe, wäre ich euch sehr verbunden, wenn ihr mir die Lösung bzw einen Lösungsansatz für dieses Problem bieten könntet...

Vielen Dank schonmal
 
Hallo,

2 kleine Fragen:
- auf welchen Browsern muss es laufen? Wenn es nur der neue IE und aktuelle Geckos sein müssen, dann könnte man es evtl komplett Clientseitig laufen lassen.
- soll es ganz ohne PHP gehen (fast nicht möglich) oder darf man am Anfang mit PHP wenigstens ein Array füllen um das später zu zitieren? Wenn das erlaubt ist, dann wandle die Zeilenumbrüche mit nl2br() um, bevor du ins Array schreibst. Wenn du sie dann ausliest lass eine regex drüberlaufen die dir die <br> wieder in \n umwandelt.

Zeig mal was du schon hast...

bye
 
zu 1) Es sollte schon zumindest auf Firebird/-fox laufen, sonst ist es mir egal
zu 2) Ich habe den zu zitierenden Text in einer Variable zur Verfügung, das sollte also kein Problem sein.
Bisher habe ich das:
Code:
<script language="JavaScript">
function addText(Text) {
	window.document.getElementById('msg').value += Text;
}
</script>
und
Code:
<img onClick="javascript:addText('[AUTOR] schrieb:\n [MSG]');"
wobei [AUTOR] und [MSG] per PHP eingefügt werden...
Das funktioniert wie gesagt auch soweit, nur eben bei Zeilenumbrüchen nicht...
Ich kann im Text auch nicht die \n's in <br>`s umwandeln, weil ich die daten ohne html in die Datenbank schreibe....
 
Hi!

Kannst Du nicht notfalls die Texte, die man Zitieren können soll, einfach zwei mal erzeugen: einmal "sichtbar" und einmal in einem "Hidden-Input" JS-gerecht? Dann könntest Du per JS auf die "unformatierten" Daten im "Hidden-Input" zugreifen und diese ins Textarea kopieren...
 
Hi!

Nee, dann hast Du mich mißverstanden. Die Idee ist folgende:
Site besteht aus:
1) Sichtbarer, formatierter, zu zitierender Text als Html.
2) Unsichtbarer, nicht-formatierter, zu zitierender Text als Hidden-Input.
3) Text-Area für Antwort.
Beim Zitieren bräuchtest Du nur den Text aus 2) in das Text-Area 3), statt aus 1) in 3) kopieren ... ansonsten bliebe alles beim Alten.
 
Schau dir mal folgendes an - vielleicht bringts dich auf die richtige idee:
PHP:
<html>
<head>
<script type="text/javascript">


<?php 
$msg = nl2br($msg_aus_db);
echo 'var msg = "'.$msg.'";';

// Beispiel: msg = "a<br>b<br><br>c";
?>

function transfer(){
  while(msg.indexOf('<br>')!=-1){
    msg = msg.replace("<br>","\n");
  }
  document.theForm.theMsg.value += msg;
}
</script>
</head>
<body>
...
<a href="#" onclick="transfer()">zitieren</a>
<form name ="theForm">
<textarea name="theMsg"></textarea>
</form>
...
</body>
</html>

bye
 
Ja, das hab ich schon verstanden, aber ich möchte den zu zitierenden Text ja in der Textbox stehen haben, in der dann direkt dahinter die Antwort geschrieben werden soll, also quasi wie die zitatantwort in diesem Forum, nur eben ohne eine neue Seite laden zu müssen.
Gäbe es irgendwie die Möglichkeit, den ganzen Beitrag per JS zeilenweise auszulesen und dann eben wieder zeilenweise ins Formular einfügen zu lassen?
 
Die Idee scheint ganz gut, aber es klappt trotzdem nicht...
Hier nochmal die Source:
PHP:
<script type="text/javascript">
function transfer(msg){
  while(msg.indexOf('<br>')!=-1){
    msg = msg.replace("<br>","\n");
  }
  document.reply.msg.value += msg;
}
</script> 

...

<a href="#reply" class=nb><img onClick="javascript:transfer('{message_unparsed}');" src="Bilder/move_right.gif" border=0 alt ="Zitatantwort"></a>

....

<form name=reply action="?..." method=post>
..
<textarea name=content style="width:100%;" rows=12 ></textarea>

Immer noch der Selbe Fehler:
"Error: unterminated string literal"

So langsam verzweifel ich :(
 
Du hast schon follgendes gemacht:
PHP:
onClick="javascript:transfer('nl2br($message)');
bzw so ähnlich - ansonsten poste mal deinen php Code der die Variable befüllt.
 

Neue Beiträge

Zurück