Для параметров GET их можно получить из document.location.search
:
var $_GET = {};
document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
function decode(s) {
return decodeURIComponent(s.split("+").join(" "));
}
$_GET[decode(arguments[1])] = decode(arguments[2]);
});
document.write($_GET["test"]);
Для параметров POST вы можете сериализовать объект $_POST
в формате JSON в тег <script>
:
<script type="text/javascript">
var $_POST = <?php echo json_encode($_POST); ?>;
document.write($_POST["test"]);
</script>
Пока вы занимаетесь этим (делаете что-то на стороне сервера), вы также можете собирать параметры GET на PHP:
var $_GET = <?php echo json_encode($_GET); ?>;
Примечание: Вам потребуется PHP версии 5 или выше, чтобы использовать встроенную функцию json_encode
.
Обновление: Вот более общая реализация:
function getQueryParams(qs) {
qs = qs.split("+").join(" ");
var params = {},
tokens,
re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])]
= decodeURIComponent(tokens[2]);
}
return params;
}
var $_GET = getQueryParams(document.location.search);