...复述
好的我在数据库中有信息:这是带有“随机引用”的随机文本
$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,如果我删除了“
,str_replace就可以了任何帮助,改动或返工我都会感激它现在让我疯了。
答案 0 :(得分:1)
如果这是针对HTML上下文的,那么您应该使用"
来逃避这些。这是通过htmlspecialchars
函数完成的。
如果您想将其作为JavaScript字符串,请在字符串上使用json_encode
。
mysqli_real_escape_string
应仅用 进行数据库调用,而仅作为最后的手段。请记住,参数化查询是编写SQL语句的最佳方法。
您真的不需要直接设置onclick
事件。像jQuery这样的库有更好的方法:
$('#my_element').click(function() { show('...'); });
答案 1 :(得分: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>';
?>
答案 2 :(得分:-2)
尝试:addslashes($var)
。它应该在引号中添加斜杠,以便它们在javascript中转义。