Reputation: 77
I want to send a URL in a POST request in a variable called surl
. How should I encode it in JavaScript and decode it in PHP? For example, the value of surl
could be http://www.google.co.in/search?q=javascript+urlencode+w3schools
.
EDIT
Sorry, I forgot to mention, it's not form submission but a ajax request.
Upvotes: 1
Views: 7474
Reputation: 5848
You don't need to to anything. Send it as is. Browser and PHP will do all escaping and unescaping for you (if you use form.surl.value = surl; form.submit()
and $_POST['surl']
). Or you can just use the plain form without any JavaScript (if it fulfills your needs).
Replying henasraf's comment. Try this.
<form id="form" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post"
onsubmit="this.via_js.value=this.via_plain_form.value;">
<input type="hidden" name="via_js"/>
<input type="text" name="via_plain_form" value="Paste you url here"/>
<input type="submit" name="submit" value="Submit"/>
</form>
<?php
if (isset($_POST['submit'])) {
var_export($_POST);
}
?>
For http://www.google.co.in/search?q=javascript+urlencode+w3schools
, it outputs
array (
'via_js' => 'http://www.google.co.in/search?q=javascript+urlencode+w3schools',
'via_plain_form' => 'http://www.google.co.in/search?q=javascript+urlencode+w3schools',
'submit' => 'Submit',
)
Upvotes: 3
Reputation: 89169
Use encodeURIComponent(uri)
(for encoding) and decodeURIComponent(uri)
for decoding,
E.g (encoding).
var uri="http://w3schools.com/my test.asp?name=ståle&car=saab";
document.write(encodeURIComponent(uri));
Output
http%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab
Decoding is left for the reader. :-)
Source: http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp
Upvotes: 3