How do I pass a a large string containing characters like '%' and '&' to my php page through ajax post?
In other words how to javascript-encode them and php-decode them?
the encodeURIComponent()
JavaScript function can be used to escape any of those characters in either the keys or the values.
PHP will receive and decode it automatically into the $_POST
array.
The format of the data should be Query String format, specifically:
Content-Type: application/x-www-form-urlencoded
For example:
Name=Joe&Age=23&City=Altoona
If you use encodeURIComponent()
on each key and each value, then join them with =
, and group them by &
, you won't have any further issues.
To encode them in javascript, use encodeUri and encodeUriComponent
http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp
PHP Decode:
http://php.net/manual/en/function.urldecode.php
You actually don't need to encode or decode something, if you use POST parameter in send method of XMLHttpRequest. Only GET needs such and encoding, since it uses URI field. You should be careful when using this data in SQL requests. Beware of injections.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With