2013-04-09 51 views
0

我已经试过了解我所知道的所有组合,但无法正确使用!正确的转义字符组合来在JavaScript中注入PHP?

echo <<<EOF 

    <a href="javascript:popup('$comments')">Popup!</a> 

EOF; 

我想通过包含在$意见,在弹出的字符串,但我似乎无法得到的转义字符和串联的正确组合。请帮助!

TIA

编辑:这是进入我所提到的字符串的HTML。

$comments.= "<b>" . $row['comName'] . "</b><br><i>" . $row['comment'] . "</i><br><br>"; 

回答

1

你需要逃避串有效的JavaScript/JSON第一保持JavaScript语法,然后逃逸的JavaScript保存HTML语法它嵌入:

$js = sprintf('javascript:popup(%s)', json_encode($comments)); 
printf('<a href="%s">Popup!</a>', htmlspecialchars($js)); 

由于这是相当一个痛苦,你应该真的尝试去寻找unobtrusive Javascript,它将Javascript与HTML分开。

+0

谢谢,这看起来很复杂,但仍然没有传递给弹出窗口。 – 2013-04-09 03:18:37

+0

结果HTML是什么? – deceze 2013-04-09 03:19:14

+0

现在工作完美。我将其设置为一个变量,并将其放在EOF字段中,而不是printf。我将阅读那篇文章,看看我是否可以将该方法应用到我的工作流程中。我只是在学习Ajax和JQuery以及它导致一些混乱的代码。 – 2013-04-09 03:22:36