admin管理员组

文章数量:1332345

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 +urlencode+w3schools.

EDIT

Sorry, I forgot to mention, it's not form submission but a ajax request.

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.

Share Improve this question edited Feb 25, 2010 at 13:57 user266307 asked Feb 25, 2010 at 7:42 user266307user266307 771 silver badge7 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 3

Use encodeURIComponent(uri) (for encoding) and decodeURIComponent(uri) for decoding,

E.g (encoding).

var uri="http://w3schools./my test.asp?name=ståle&car=saab";
document.write(encodeURIComponent(uri));

Output

http%3A%2F%2Fw3schools.%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab

Decoding is left for the reader. :-)

Source: http://www.w3schools./jsref/jsref_encodeURIComponent.asp

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 ment. 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',
)

As for PHP, it's urlencode() and urldecode().

本文标签: How to encode URL in JavaScript and PHPStack Overflow