2011-03-18 76 views
1

我必须使用ajax.Updater传递参数到一个php页面。要传递的帖子值包含+, - ,&,%,#等字符。如何在javascript中对POST参数进行编码并将其解码为php?

我使用encodeURIComponent编码参数,然后在php页面中使用urldecode()进行发布和解码。

我无法获取php页面中发布的数据。请建议如何处理。

谢谢

+0

你能告诉我们,你是如何发送请求的? – Starx 2011-03-18 12:34:41

+2

请显示您的代码。 'encodeURIComponent'是正确的功能。您可能不需要在PHP中进行任何解码。这应该自动完成。 – 2011-03-18 12:37:04

回答

-1

URL编码的替代方法是base64编码,然后您可以使用$ _POST和base64_decode()来检索结果。例如,如果您已经在使用JQuery,base64编码/解码就很常见:http://plugins.jquery.com/project/base64-encode-and-decode

+0

我认为我是downvoted的,因为base64编码有时会向寄件数据添加虚假的字符。 – 2011-03-18 12:48:00

0

我强烈建议使用从原型的“postBody”选项:http://prototypejs.org/api/ajax/options

使用此选项,您不必对数据进行编码。只需发送请求作为POST请求并直接从PHP中的$ _POST数组中获取数据。

+0

我正在使用Prototype的“postBody”选项。语法就像postBody:“field1”= value1 +“field2 =”+ value2但是,如果我要传递的值中有“+”或“&”,则不会在PHP中获取“+”和“&”页面例如。如果field1 =“grade A +”,那么只有“grade A”出现在php页面 – Sangam254 2011-03-18 12:48:45

3

我使用了encodeURIComponent(value1)。即我编码每个值然后发布。之前,我编码整个postBody。

相关问题