1

转述...

好的,我在数据库中有信息:这是带有“随机引用”的随机文本

$var = 'This is random text with a "random quote"'

onClick="show(\''.$var.'\')

但是当显示(查看源代码)时,它显示:

onclick="show('This is random text with a  " random="" quote"')

我已经尝试过 mysqli_real_escape_string 和 str_replace,如果我要删除“

任何帮助、更改或返工,我都会感激它让我现在发疯。

4

3 回答 3

1

如果这是一个 HTML 上下文,你应该用它"来转义那些。这是通过htmlspecialchars函数完成的。

如果您希望它作为 JavaScript 字符串,json_encode请在字符串上使用。

mysqli_real_escape_string应该用于数据库调用,并且只能作为最后的手段。请记住,参数化查询是编写 SQL 语句的最佳方式。

您真的不需要onclick直接设置事件。像jQuery这样的库有更好的方法来做到这一点:

$('#my_element').click(function() { show('...'); });
于 2013-09-28T20:09:10.420 回答
1

尝试这个,

<script>
function show(str)
{
   alert(str);
}
</script>
<?php 
     $var = "This is random text with a \'random quote\'";
     echo '<a href="javascript:;" onClick="show(\''.$var.'\')">click</a>';
?>
于 2013-09-28T20:21:03.990 回答
-2

试试:addslashes($var)。它应该在引号中添加斜杠,以便在 javascript 中对其进行转义。

于 2013-09-28T20:10:37.533 回答