0

I have the following code in PHP and it doesn't work:

echo "<script language=\"javascript\">
function rebuild_preview(){

     var Title = document.getElementById('title').value;
     var LYTtitle = document.getElementById('lyt_title');
     if (LYTtitle !== null){
     document.getElementById('lyt_title').innerHTML = Title.replace(/\r?\n/g, '<br />');
     }
}
</script>";

I think it is because of the quotes in the Title.replace section. Does someone know the correct way to handle it?

Gogo
  • 575
  • 2
  • 7
  • 20

2 Answers2

0

Try to use double backslash, one is for php and one for javascript.

 Title.replace(/\\r?\\n/g, '<br />');
Niklesh Raut
  • 34,013
  • 16
  • 75
  • 109
0

Doing a simple test using the PHP CLI your code

echo "<script language=\"javascript\">
function rebuild_preview(){

     var Title = document.getElementById('title').value;
     var LYTtitle = document.getElementById('lyt_title');
     if (LYTtitle !== null){
     document.getElementById('lyt_title').innerHTML = Title.replace(/\r?\n/g, '<br />');
     }
}
</script>";

Generates this output

<script language="javascript">
function rebuild_preview(){

     var Title = document.getElementById('title').value;
     var LYTtitle = document.getElementById('lyt_title');
     if (LYTtitle !== null){
?    document.getElementById('lyt_title').innerHTML = Title.replace(/
/g, '<br />');
     }
}

Note the error in the .replace

Amend your document.getElementById like this and it will work

document.getElementById('lyt_title').innerHTML = Title.replace(/\\r?\\n/g, '<br />');

Note the escape \\r and \\n

RiggsFolly
  • 93,638
  • 21
  • 103
  • 149