Para parâmetros GET, você pode obtê-los de 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"]);
Para parâmetros POST, você pode serializar o $_POST
objeto no formato JSON em uma <script>
tag:
<script type="text/javascript">
var $_POST = <?php echo json_encode($_POST); ?>;
document.write($_POST["test"]);
</script>
Enquanto você está nisso (fazendo coisas no lado do servidor), você pode coletar os parâmetros GET no PHP também:
var $_GET = <?php echo json_encode($_GET); ?>;
Observação: você precisará do PHP versão 5 ou superior para usar a json_encode
função integrada.
Atualização: aqui está uma implementação mais genérica:
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);
Existe um plugin para jQuery para obter parâmetros GET chamado .getUrlParams
Para o POST, a única solução é ecoar o POST em uma variável javascript usando PHP, como Moran sugeriu.
fonte
por que não usar o bom e velho PHP? por exemplo, digamos que recebemos um parâmetro GET 'alvo':
fonte
Ou você pode usar este http://plugins.jquery.com/project/parseQuery , é menor do que a maioria (minimizado 449 bytes), retorna um objeto que representa pares nome-valor.
fonte
Com qualquer linguagem do lado do servidor, você terá que emitir as variáveis POST em javascript.
.INTERNET
Apenas tome cuidado com os valores vazios. Se a variável que você tenta emitir estiver realmente vazia, você obterá um erro de sintaxe javascript. Se você sabe que é uma string, deve colocá-la entre aspas. Se for um número inteiro, você pode querer testar para ver se ele realmente existe antes de escrever a linha em javascript.
fonte
Você pode tentar o plugin Query String Object para jQuery.
fonte
Aqui está algo para reunir todas as
GET
variáveis em um objeto global, uma rotina otimizada ao longo de vários anos. Desde o surgimento do jQuery, agora parece apropriado armazená-los no próprio jQuery, estou verificando com John sobre uma implementação de núcleo potencial.Exemplo de uso:
Espero que isto ajude. ;)
fonte
Os plug-ins jQuery parecem bons, mas o que eu precisava é uma função js rápida para analisar os parâmetros de obtenção. Aqui está o que encontrei.
http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx
fonte
Se o seu $ _GET for multidimensional, isso pode ser o que você está querendo:
fonte
simples, mas útil para obter vars / valores de URL:
Eu encontrei em algum lugar na internet, apenas consertei alguns bugs
fonte
Use a seguinte função:
e variáveis de acesso como
vars['index']
where'index'
é o nome da variável get.fonte
http://foo.com/?a=b#bar
. Ele pensa queb#bar
é o valor paraa
.substitua VARIABLE_KEY pela chave da variável para obter seu valor
fonte
Apenas para registro, eu queria saber a resposta a esta pergunta, então usei um método PHP:
Dessa forma, todo o meu javascript / jquery que roda depois disso pode acessar tudo nos jGets. É uma solução agradável e elegante, eu sinto.
fonte
Minha abordagem:
fonte