2012-07-09 73 views
-3

假设我有一个列产品名称,它的值为Shoe's。 当我拿起那个值从DB和使用mysql_real_escape_string并把它放在HTML隐藏输入变得<input type='hidden' value='Shoe\'s' id='product_name'>mysql_real_escape_string和jquery

当我做$('#product_name').val()它仅返回Shoe\截断后,该s或价值的其余部分。 jQuery假设一个转义单引号作为attr值的结束引用。

解决方法是使用value=""(用双引号括起来),但如果value包含双引号会怎么样?所以问题依然存在。 任何帮助表示赞赏。

谢谢!

+0

为什么使用'mysql_real_escape_string'作为要放入HTML的值? – deceze 2012-07-09 14:06:22

+0

当你在数据库中保存东西时,你应该使用mysql_real_escape_string,而不是当你获取它们时..直到你切换到更好的选项,如pdo,因为手册页显示http://php.net/mysql_real_escape_string – mishu 2012-07-09 14:06:28

+0

首先这是数据库由我的雇主提供给我,这不是我设置这些东西的方式,这些都是由他来找我的。考虑到在db中存储值时没有使用mysql_real_escape_string。现在我该怎么办? – 2012-07-09 14:09:20

回答

0

在HTML中,报价前的反斜杠并不意味着报价被转义。 HTML中的转义'&#039;。这就是为什么你使用适当的转义方法为您的输出目标。当转义SQL时,mysql_real_escape_string是合适的,当转义为HTML时,htmlspecialchars是合适的。