84 votes

Comment obtenir les paramètres de requête "GET" en JavaScript?

Comment obtenir des variables "GET" à partir d'une requête en JavaScript?

Est-ce que jQuery ou YUI! cette fonctionnalité est-elle intégrée?

189voto

Rafael Points 9065

Toutes les données sont disponibles sous

 window.location.search
 

vous devez analyser la chaîne, par exemple.

 function get(name){
   if(name=(new RegExp('[?&]'+encodeURIComponent(name)+'=([^&]*)')).exec(location.search))
      return decodeURIComponent(name[1]);
}
 

appelez simplement la fonction avec le nom de variable GET en tant que paramètre, par exemple.

 get('foo');
 

cette fonction retournera les variables value ou undefined si la variable n'a pas de valeur ou n'existe pas

34voto

Kaos Points 497

Vous pourriez utiliser jquery.url J'ai fait comme ça:

 var xyz = jQuery.url.param("param_in_url");
 

Vérifiez le code source

Source mise à jour: https://github.com/allmarkedup/jQuery-URL-Parser

12voto

FabianCook Points 5075

Juste pour exprimer mes deux sens ... si vous vouliez un objet contenant toutes les requêtes ...

 function getRequests() {
    var s1 = location.search.substring(1, location.search.length).split('&'),
        r = {}, s2, i;
    for (i = 0; i < s1.length; i += 1) {
        s2 = s1[i].split('=');
        r[decodeURIComponent(s2[0]).toLowerCase()] = decodeURIComponent(s2[1]);
    }
    return r;
};

var QueryString = getRequests();

//if url === "index.html?test1=t1&test2=t2&test3=t3"
console.log(QueryString["test1"]); //logs t1
console.log(QueryString["test2"]); //logs t2
console.log(QueryString["test3"]); //logs t3
 

Remarque, la clé de chaque paramètre get est définie en minuscule. J'ai donc créé une fonction d'assistance ... donc insensible à la casse ....

 function Request(name){
    return QueryString[name.toLowerCase()];
}
 

5voto

Daniel Lew Points 39063

Vous pouvez utiliser l'URL pour acquérir les variables GET. En particulier, window.location.search donne tout après (et y compris) le "?". Vous pouvez en savoir plus sur window.location ici .

1voto

brendan Points 15097

Si vous utilisez déjà jquery, il existe un plugin jquery qui gère ceci:

http://plugins.jquery.com/project/query-object

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X