Javascript SyntaxError:未终止的字符串文字

Javascript SyntaxError:未终止的字符串文字,javascript,php,Javascript,Php,您好,我有一个php和javascript脚本,我想从php调用我的函数javascript,但当我的字符串有新行时,当我在firefox中打开firebug时,我遇到了一个问题 这个错误是错误的 “语法错误:未终止的字符串文字” 这是我的密码 <script> function myfunction(mydata) { alert(mydata) } </script> <?php $data =nl2br("hello \n world"); echo

您好,我有一个php和javascript脚本,我想从php调用我的函数javascript,但当我的字符串有新行时,当我在firefox中打开firebug时,我遇到了一个问题

这个错误是错误的 “语法错误:未终止的字符串文字”

这是我的密码

<script>
function myfunction(mydata)
{
   alert(mydata)
}
</script>
<?php 
$data =nl2br("hello \n world");
echo '<a href="javascript:void(0)" onClick="myfunction(\'' . $data . '\')">Click</a>';
?>

函数myfunction(mydata)
{
警报(mydata)
}
帮帮我,谢谢

固定的


函数myfunction(mydata)
{
警报(mydata)
}

为字符串添加附加处理以删除换行符:

$data = nl2br("hello \n world");
$data = preg_replace( "/\r|\n/", "", $data );
然后回声

echo '<a href="javascript:void(0);" onClick="myfunction(\'' . $data . '\');"></a>';
echo';
而不是

echo '<a href="javascript:void(0)" onClick="myfunction($data)"></a>';
echo';
  • 在JavaScript吨变量之间添加和逃出简单引号,将其视为字符串
  • 将您的var转换为输出的字符串,因为在简单的引号之间,它不会被解释(与双引号相反)
如果您只想直接在警报中添加换行符,则只需执行以下操作:

$data = "hello \\nworld";
echo '<a href="javascript:void(0)" onClick="myfunction(\'' . $data . '\')">Click</a>';
$data=“hello\\nworld”;
回声';

如果您想在警告框中显示HTML,请考虑使用PopIn JavaScript插件。如注释中提到的

,单引号将不解释变量。您需要切换报价类型,并在数据变量周围添加报价:

echo "<a href='javascript:void(0)' onClick=\"myfunction('$data')\"></a>";
echo”“;

Read生成的source.PHP变量用双引号字符串解释。这是一个单引号字符串。此外,您正在调用
onClick=“myfunction(Hello
world)”
,期待惊喜您是什么意思??我不明白……还有,你有
数据
我的数据
。您应该纠正这一点。
“$data”
将生成
$data
<代码>“$data”将生成
Hello
world
。仍然错误>语法错误:未终止的字符串文本myfunction('hello
您可以测试我的代码>此警报显示:hello
world问题是什么?这是另一个问题,也是另一个问题。但我编辑了我答案的最后一部分。您可以测试我的代码>pastebin.com/GLAMW8tS此警报显示:hello
world
echo "<a href='javascript:void(0)' onClick=\"myfunction('$data')\"></a>";