ik heb een klein probleempje met JavaScript ism met PHP,
ik echo een string uit een database in een JavaScript, dat werkt prima, maar het probleem is dat als ik een harde return zet in mijn text (=<br>) ik problemen krijg in javascript.

Ik zou dus het omgekeerde van nl2br moeten doen, ik moet dus een tekst omzetten van een tekst met <br>'s naar een text met \n, en natuurlijk moet de harde return ook weg zijn.

Maar dat lukt me niet echt.

Bdeankt voor de hulp,

Andreas


–––––NU–––––

Code:

document.edit.tekst.value 		= '<? echo $tekst; ?>!';


Resultaat:

document.edit.tekst.value 		= 'Precies één jaar na de oprichting van Emg staat versie twee van exclamation.be on-line. Volledig beheerd door ons CMS.
Veel plezier!';
Kan dit niet gewoon met de functie str_replace() ?
$string = str_replace("<br>", '\n', $string);

Let op de '->enkele haakjes om de \n. Volgens mij zorgt dit er namelijk voor dat ze letterlijk als een slash, en een letter n worden genomen.
het probleem is dat als ik dat doe, de harde return zelf niet weg is, effectief de regelverspringing, en die moet net wel weg
<?php
$string = str_replace("<br>", "", $string);
$string = str_replace("\n", "", $string);
$string = str_replace("\r", "", $string);
?>
Zo zou je toch van alle vormen van enter af moeten zijn.
Die heb ik ook een keer gehad. Dat heb ik toen hier gevraagd en daaruit kwam deze oplossing:

<?php
// Deze moeten helemaal links staan staan, omdat de explode anders niet goed is...
$invoer_js=explode('
', $text);

// Deze code mag weer inspringen
$count=count($invoer_js);
for($i=0;$i<$count;$i++) {
if($i==0) {
echo "document.edit.text.value = \"".$invoer_js[$i]."\"\n";
} else {
echo "document.edit.text.value+= \"\\n".$invoer_js[$i]."\"\n";
}
}
?>

Elwin
Om de harde return te verwijderen doe je:

<?php
$s = str_replace(array("\r\n","\r","\n"), '', $s);
?>

Eigenlijk hetzelfde als Jelmer zegt alleen dan mooi op 1 regel.

Reageren