String über mehrere Zeilen per JavaScript in Textfeld

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • String über mehrere Zeilen per JavaScript in Textfeld

    per onfocus, lasse ich einer Textarea einen Bestimmten Value zuweisen.

    Sry kann den Code nicht posten... wenn ich das hier reinkopiere, wird das komplette textfeld geleert?!? keine ahnung was ich falsch mache. ^^

    aufjedenfall kommt hinter document get element by id ... value= und dann hänge ich den text der aus der datenbank kommt dran also $message

    solang der text nur eine zeile lang ist, kein problem...

    aber sobald der text so aussieht ein zeilenumbruch hat, funktioniert das ganze nicht mehr.

    ich hoffe du verstehst was ich meine. Ne ahnung, was ich falsch mache? ^^
  • naja, im JavaScript Quelltext müssen neue Zeilen auch anständig konkateniert werden:

    Quellcode

    1. var x = "zeile1 zeile1 zeile1 zeile1 zeile1"+
    2. "zeile2 zeile2 zeile2 zeile2 zeile2 ";


    Für den Vorhaben willst du vermutlich das erreichen?

    Quellcode

    1. var x = "zeile1 zeile1 zeile1 zeile1 zeile1\nzeile2 zeile2 zeile2 zeile2 zeile2 ";


    siehe

    Quellcode

    1. $string = str_replace("\n",'\n', $string)
  • Ach ich glaub ich war mal wieder zu Voreilig.

    Es funktioniert nur zu 50%.

    Also wenn ich ein Eintrag tätige, und nur:
    "Test "
    in die Textarea schreibe, funktioniert es. (und ich kann es mithilfe der edit funktion von mir ändern... immer weiter egal wie viel zeilenumbrüche ich mache)

    Schreibe ich aber:
    Test
    Test
    Test
    kann ich es nicht ändern. (dann geht einfach garnichts, und er kopiert den code nicht in die edit textarea)


    Beim insert script, schicke ich die POST Felder und führe die drei befehle aus:
    mysql_real_escape_string, strip_tags, htmlentities

    Beim Edetieren, führe ich auch nur die drei befehle aus.
    Das verwunderliche ist nur, dass es beim Edetieren funktioniert...

    Was mich noch wundert ist, beim einfachen insert,
    schreibt er es so:

    test/r/ntest/r/n

    beim edit script (das edit script war das wo ich per value es in die textarea schreiben lasse. also auch mit str_replace das was du mir oben gezeigt hast)
    dort kommt raus test/ntest/n...

    Kurze erklärung am script. hab das ganze so grob wie es geht zusammen gefasst...

    das ist der normale eintrag für den text:

    paste.frubar.net/7408

    und die text_bearbeiten.php sieht im groben nur noch so aus:

    paste.frubar.net/7409


    Ich hab bis jetzt dran gesessen, und weiß ehrlich nicht was ich für ein fehler mache. ^^

    naja gute nacht (=

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Snowflake ()

  • Dort ist kein unterschied zu finden *kopfkratz*

    Geparst sie das ganze so aus. Test ist ohne edit. Und Test 2 ist mit edit

    <div class="text">
    test2<br />
    test2<br />
    test2<br/><b>zuletzt ge&auml;ndert am 23.Jan um 12:41</b>

    </div>


    <div class="text">
    test<br />
    test<br />
    test

    </div>


    und die dazugehörigen bearbeiten links:

    <a href="javascript:;" onfocus="document.getElementById('edit_220').value = 'test2\ntest2\ntest2'">[Beitrag bearbeiten]</a>


    <a href="javascript:;" onfocus="document.getElementById('edit_219').value = 'test
    \ntest
    \ntest'">[Beitrag bearbeiten]</a>
  • Snowflake schrieb:

    Test ist ohne edit. Und Test 2 ist mit edit

    was meinst du damit? Mit edit, ohne edit?
    Tatsache ist, dass das 219er Beispiel falsch ist... und beides läuft über die selbe Schleife?
    Vielleicht wegen dem \r ? Du kannst das str_replace in der Augabe auch mal durch einen komplexeren preg_replace ersetzen:

    Quellcode

    1. preg_replace("/\r\n|\r/", '\n', $inhalt);


    Siehe [coderwiki]HowTos/PHP-Trennen-nach-Zeile[/coderwiki]