以下是我的JS代码:
window.location.href = 'products.php?price_range=-INFto2000,2001to5000';
我的问题是如何在javascript&中编码网址?用PHP解码它,这样我的浏览器的导航栏就会显示
" products.php PRICE_RANGE = -INFto2000%2C2001to5000"
而不是
" products.php PRICE_RANGE = -INFto2000,2001to5000"
我的php代码将能够在-INFto2000,2001to5000
$_GET['price_range']
的正确值
答案 0 :(得分:1)
您可以使用encodeURI()
此功能对除: , / ? : @ & = + $ #
要: , / ? : @ & = + $ #
使用encodeURIComponent()
编码所有字符的最佳方法是运行两个函数
var url = 'products.php?price_range=-INFto2000,2001to5000';
url = encodeURI(url);// Encode special characters
url = encodeURIComponent(url);//Encodes : , / ? : @ & = + $ # characters
默认情况下,php会自动decode
编码的URL,因此您无需执行任何操作。您只需访问此类
$_REQUEST['price_range'];
出于某些原因,如果您必须解码网址客户端,则可以使用decodeURI()
& decodeURIComponent()
答案 1 :(得分:0)
在您的javascript代码中尝试此操作
window.location.href = 'products.php?price_range='+encodeURIComponent('-INFto2000,2001to5000');
您可以访问$ _GET ['price_range']中的解码值。 $ _GET变量默认在PHP中解码。