Ik wil d.m.v. een knop de gebruiker een voorbeeld weergave laten zien wat hij/zij al in een textarea veld heeft getypt.
Om die reden kan ik dus helaas geen php gebruiken (wil het simpel houden zonder ajax).

Nu is het de bedoeling dat regeleindes vertaalt worden naar <br /> en wordt via innerhtml weergegeven.

<?php
print "<input type='button' value='Voorbeeld weergave' class='submit' style='float: right; width: 140px;' onclick=\"document.getElementById('voorbeeldweergave').innerHTML=document.forms['admin']['description'].value.replace('\\n', '<br>');\" />\n";
?>

Heb op internet gezocht maar '\\n' is het enige wat bij mij schijnt te werken.

In ieder geval werkt het maar helaas maar 1x en dat is bij de 1e regeleinde. De rest slaat de functie over.

Dus als de gebruiker 4 alinea's typt is wel de regelafbreking van de 1e alinea maar de rest gaat gewoon door.

Ook heb ik in de functie eens getest door de 'e' in 'q' te veranderen en dat doet ie maar bij de 1e 'e'.

Iemand?
Gebruik de "g" flag (global) om elke match te replacen:

[code lang=js]"Hello\nWorld\nHow\nAre\nYou?".replace(/\n/g, '<br>')[/code]
ok weten we meteen waar de /g voor staat.

Alleen zo zonder haakjes en andere combinaties geprobeerd krijg ik helemaal niks meer te zien als ik op de knop druk.

== update ==

value.replace(/\\n/g, '<br>')

schijnt het te doen. Nog ff goed testen ...

== update II ===

Ja met die dubbele \\ werkt het goed ook op mijn linux-doos

Waarom moet er bij mij er 1 \ bij dan? Is het omdat ik eigenlijk in php code zit?

<status solved="solved" />
Je geeft in php je string tussen dubbele quotes, dat betekent dat php de inhoud van de string gaat parsen. Daarbij geldt het \ karakter als het escape karakter. Je geeft aan php daarmee aan dat het volgende karakter niet letterlijk moet worden genomen, maar als speciaal karakter. \n wordt daarmee in php al geinterpreteerd als line break en niet als twee karakters (\ en n los dus). Om nu weer het escape karakter niet door php als escape karakter te laten gelden moet je dat karakter escapen.... door een extra \.

Voorbeeld werkt waarschijnlijk beter:

<?php
echo "\n";   //geeft een linebreak, n geescaped
echo "\\n";  //geeft \n, \ is geescaped

//in tegenstelling tot enkele quotes
echo '\n';   //geeft \n, niets geescaped
echo '\\n';  //geeft \\n, niets geescaped
?>
Ja ik weet het van het escapen.
Maar om mijn hersentjes te trainen en mezelf moeilijk te maken gebruik ik gewoon een code-editor (Notepad 2)

Maar zodra je met Javascript code in php gaat werken moet je drommels goed uitkijken.

Voordeel van gebruik tekst editors is dat je de taal goed machtig blijft.

Bedankt.

<status solved="solved" />

Reageren