Analyser & récupérer les variables de l'url

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 762 fois - Téléchargée 18 fois

Contenu du snippet

Comme d'autres l'ont déjà fait, il faut analyser la chaine de l'URL pour les mettre dans un tableau afin de pouvoir ensuite utiliser les variables.
Contrairement à ce que d'autres ont fait, j'utilise un tableau associatif.
dans une url du type index.php?pseudo=pifou&id=25
le résultat sera un tableau GET['pseudo']='pifou' et GET['id']=25
j'appelle le tableau GET par analogie avec le $_GET en PHP uniquement.

Source / Exemple :


<script language="JavaScript" type="text/javascript">
<!--	 // récupérer TOUS les paramètres de l'URL
var tmp = window.location.search.substring(1).split("&");
var GET = [];
for (var i in tmp) 
	if (tmp[i].indexOf("=")!=-1)
		GET[decodeURI(tmp[i].substring(0, tmp[i].indexOf("=")))] = decodeURI(tmp[i].substring(tmp[i].indexOf("=")+1));
	else
		GET[decodeURI(tmp[i])]='';

// -->
</script>

Conclusion :


quelque explication:
substring(1) pour ôter le 1er caractère '?' de l'URL
split pour convertir en tableau chaque couple nom=valeur
une boucle sur ce tableau pour séparer chaque couple en GET['nom']=valeur

attention donc: pas de & ni = dans l'URL il faut les encoder / décoder.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
144
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

bonne question, ça marchait pas ça renvoyait GET['']='titi'
j'ai modifié le code pour autoriser les variables vide et avoir GET['tit']='' (on aurait pu mettre null ou 0)
tant qu'à faire j'ai ajouté le decodeURl dans la boucle.
Messages postés
130
Date d'inscription
lundi 12 décembre 2005
Statut
Membre
Dernière intervention
19 avril 2009

Simple question, si dans mon url j'ai ça : ?toto=salut&titi&plop=youplaboom

Pour la variable titi, ça se passe comment ?
Messages postés
144
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

déjà fait...
http://www.codyx.org/snippet_manipuler-parametres-passes-dans-url_93.aspx

c'est casse pied cette rubrique snippet, quand tu cherche un code JS dans le site JS il est dans snippet et je pense jamais à chercher.
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
7
On peut comme on peut ne pas mettre de ";" à la fin de chaque ligne de code. C'est pas recommandé et pas vraiment standard. C'est davantage pour imiter le PHP que je l'avais fait ainsi.

Tu peux le poster si tu veux dans les snippets, j'ai plusieurs trucs sur lequel je travailles de ce temps ci et je risque d'oublier.
Messages postés
144
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
21 décembre 2014

Arto, j'ai cherché 3 min avant de poster et je crois que j'avais remarqué celui que tu m'indique, mais franchement j'étais pas allé jusqu'à lire les commentaires... je trouvais le mien mieux que celui existant (tu en conviendra) donc j'ai posté.
ton code a en + l'avantage d'utiliser unescape
par contre je pensais pas qu'on pouvait avoir un nom de variable qui commence par $ en js(?)
Tu peux le (re)poster dans les snippets je trouve que ça le mérite c'est toujours utile :)
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.