Question

I have a php function which generates a javascript alert popup.

This function accepts a parameter message. My problem is that if message is a multiple line string, javascript won't alert the text because of the lack of '+' every line. How can I solve that?

function alert($msg) {
    echo '<script type="text/javascript">alert("'.$msg.'")</script>';
}

/* DOESN'T WORK */
  $msg = 'testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttest.
      testtesttesttesttesttesttesttest.
      testtesttesttesttesttesttesttesttesttest.';
  alert($msg);

/* WORKS */
  $msg = 'testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttest. testtesttesttesttesttest. testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttestttesttesttesttesttesttest.';
  alert($msg);
Was it helpful?

Solution

The problem is multiline strings in javascript need to be split with a \ at the end of each line.

function alert($msg) {
    echo '<script type="text/javascript">alert("'.$msg.'")</script>';
}

$msg = 'testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttest.\
      testtesttesttesttesttesttesttest.\
      testtesttesttesttesttesttesttesttesttest.';
alert($msg);

OTHER TIPS

Please user json_encode function in pass function parameter
json_code function is change link break into \n

<?php 
 function alert($msg) {
    echo '<script type="text/javascript">alert('.$msg.')</script>';
}

/* DOESN'T WORK */
  $msg = 'testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttest.
      testtesttesttesttesttesttesttest.
      testtesttesttesttesttesttesttesttesttest.';
  alert(json_encode($msg));
 ?>

This chrome enter image description here

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top