你好我有一个脚本php和javascript,我想从php调用我的函数javascript,但我有一个问题,当我的字符串有一个新的行,当我在firefox中打开firebug
这个错误是 “ SyntaxError:unterminated string literal ”
这是我的代码
<script>
function myfunction(mydata)
{
alert(mydata)
}
</script>
<?php
$data =nl2br("hello \n world");
echo '<a href="javascript:void(0)" onClick="myfunction(\'' . $data . '\')">Click</a>';
?>
帮助我,谢谢
固定
<script>
function myfunction(mydata)
{
alert(mydata)
}
</script>
<?php
$data = str_replace("\n", '\n', "hello \n world");
$data = preg_replace( "/\r|\n/", "", $data);
echo '<a href="javascript:void(0);" onClick="myfunction(\'' . $data . '\');">Click</a>';
?>
答案 0 :(得分:2)
为字符串添加额外处理以删除换行符:
$data = nl2br("hello \n world");
$data = preg_replace( "/\r|\n/", "", $data );
然后回声
echo '<a href="javascript:void(0);" onClick="myfunction(\'' . $data . '\');"></a>';
而不是
echo '<a href="javascript:void(0)" onClick="myfunction($data)"></a>';
然后,如果您只想在警报中直接添加换行符,则应执行以下操作:
$data = "hello \\nworld";
echo '<a href="javascript:void(0)" onClick="myfunction(\'' . $data . '\')">Click</a>';
如果要将HTML显示在警告框中,请考虑使用popin javascript插件。
答案 1 :(得分:0)
如评论中所述,单引号不会解释变量。您需要切换报价类型,并在数据变量周围添加引号:
echo "<a href='javascript:void(0)' onClick=\"myfunction('$data')\"></a>";