2011-09-30 107 views
0

我有一个textarea,我正在使用JavaScript来检索值并通过PHP脚本发送到MySQL数据库(不要问为什么 - 长篇故事和不可避免的解决方案! )。从JavaScript到PHP/MySQL传递&符号

PHP脚本会对输入进行清理,但由于某些原因,&符号永远无法到达所述脚本 - 它也会在&符后清除任何信息。

var Reason = $('textarea#txt_reason').val(); 
Reason = Reason.replace(/&/g,'&'); 

如果我使用上面的内容,则在&符号后的所有文本都将被选中。

var Reason = $('textarea#txt_reason').val(); 
Reason = Reason.replace(/&/g,'%26'); 

如果我使用上述内容,%26确实会被发送到PHP和MySQL数据库。

如果我var_dump在PHP脚本中的$ _GET要求,与符号永远那么远,所以它不是什么与mysql_real_escape_string /ヶ辆等

有没有一种方法我可以直接发送“& “到我的PHP脚本,而不必编码/解码?

干杯, 邓肯

+0

你可以发布你用来发送'原因'到PHP脚本的代码吗? – awm

+0

您可以使用内建的Javascript函数'encode(str)'。我对PHP不太熟悉,但通常***会从http查询字符串中检索任何值,并自动解码编码的元素。 –

回答

1

您发送使用Javascript的任何数据,也应encodeURIComponent()进行编码。这将照顾&,=和其他麻烦制造者。数据自动解码到$ _GET数组中。

(大多数Javascript框架,如jQuery为你做这个...)

+0

我认为其中存在的问题是:我使用的框架/ API不能正确处理&符号。谢谢! – dunc