如何使用MYSQL信息在PHP中正确显示我的引号并将它们放在onclick事件中?

时间:2013-09-28 20:04:44

标签: javascript php mysql

...复述

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

$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就可以了

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

3 个答案:

答案 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中转义。