Para los parámetros GET, puede obtenerlos 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 los parámetros POST, puede serializar el $_POST
objeto en formato JSON en una <script>
etiqueta:
<script type="text/javascript">
var $_POST = <?php echo json_encode($_POST); ?>;
document.write($_POST["test"]);
</script>
Mientras lo hace (haciendo cosas en el lado del servidor), también puede recopilar los parámetros GET en PHP:
var $_GET = <?php echo json_encode($_GET); ?>;
Nota: Necesitará PHP versión 5 o superior para usar la json_encode
función incorporada.
Actualización: aquí hay una implementación más 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);
Hay un complemento para jQuery para obtener parámetros GET llamados .getUrlParams
Para POST, la única solución es hacer eco del POST en una variable javascript usando PHP, como sugirió Moran.
fuente
¿Por qué no usar PHP antiguo? por ejemplo, digamos que recibimos un parámetro GET 'target':
fuente
O puede usar este http://plugins.jquery.com/project/parseQuery , es más pequeño que la mayoría (449 bytes minificados), devuelve un objeto que representa pares nombre-valor.
fuente
Con cualquier lenguaje del lado del servidor, tendrá que emitir las variables POST en javascript.
.RED
Solo tenga cuidado con los valores vacíos. Si la variable que intenta emitir está realmente vacía, obtendrá un error de sintaxis de JavaScript. Si sabe que es una cadena, debe envolverla entre comillas. Si es un número entero, es posible que desee probar para ver si realmente existe antes de escribir la línea en javascript.
fuente
Puede probar el complemento Query String Object para jQuery.
fuente
Aquí hay algo para reunir todas las
GET
variables en un objeto global, una rutina optimizada durante varios años. Desde el surgimiento de jQuery, ahora parece apropiado almacenarlos en jQuery, estoy consultando con John sobre una posible implementación central.Uso de ejemplo:
Espero que esto ayude. ;)
fuente
Los complementos de jQuery parecen agradables, pero lo que necesitaba es una función js rápida para analizar los parámetros get. Esto es lo que encontré.
http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx
fuente
Si su $ _GET es multidimensional, esto podría ser lo que desea:
fuente
simple, pero útil para obtener vars / valores de URL:
Lo encontré en algún lugar de Internet, solo solucioné algunos errores
fuente
Utilice la siguiente función:
y acceda a las variables como
vars['index']
where'index'
es el nombre de la variable get.fuente
http://foo.com/?a=b#bar
. Piensa queb#bar
es el valor paraa
.reemplace VARIABLE_KEY con la clave de la variable para obtener su valor
fuente
Solo para que conste, quería saber la respuesta a esta pregunta, así que utilicé un método PHP:
De esa manera, todo mi javascript / jquery que se ejecuta después de esto puede acceder a todo en jGets. Creo que es una solución elegante y agradable.
fuente
Mi acercamiento:
fuente