Récuperer les variables $_get

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 382 fois - Téléchargée 15 fois

Contenu du snippet

Permet aux amateur de PHP d'utiliser $_GET et la fonction isset() pour tester et récupérer les variables passées par un formulaire, en JavaScript.

Utilise les fonction d'URI de JavaScript.

Court mais peut être utile.

Source / Exemple :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

<head>

	<title>Formulaire et données GET</title>
	
</head>

<body>
	
	<form name="test" method="get" action="">
		<input type="text" name="param1" value="" />
		<input type="text" name="param2" value="" />
		<input type="submit" />
	</form>
	
	<script type="text/javascript">
	
		// FONCTIONS
	
		function getURLParams()
		{
			var url = document.location.href.split("?");
			
			if(url.length > 1)
			{
				// Params found un URL !
				var get = new Object;
				var params = url[1].split("&");

				for(var i in params)
				{
					var tmp = params[i].split("=");
					get[tmp[0]] = unescape(tmp[1].replace("+", " "));
				}
				
				// Return Object (data are accessible in array too) : get["paramname"] = get.paramname
				return get;
			}
			
			// No params found in URL !
			return false;
		}
		
		function isset(data)
		{
			if(typeof(data) == "undefined")
				return false;
			
			return true;
		}
		
		// CODE DE TEST
		
		$_GET = getURLParams();
		
		if(isset($_GET.param1))
			document.write($_GET.param1 + "<br />");
			
		if(isset($_GET.param2))
			document.write($_GET.param2 + "<br />");
		
	</script>
</body>
</html>

A voir également

Ajouter un commentaire

Commentaires

GillesWebmaster
Messages postés
507
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1
Salut,
Je n'ai pas testé ton code mais ta boucle for me paraît compliquée: pourquoi ne pas parcourir le tablea $_GET comme un tableau associatif ? Ce serait bien plus simple, non?
Sinon j'aime bien l'idée de transposer les valeurs $_GET en JS. Faudrait considérer l'aspect sécuritaire de ta démarche...
testabc
Messages postés
33
Date d'inscription
jeudi 17 juillet 2008
Statut
Membre
Dernière intervention
23 juillet 2014

c'est pratique quand tu connais l'ordre d'arrivée des arguments mais j'ai mieux !
et c'est en jquery...

A rajouter dans le $(document).ready(function()

$.extend({
getUrlVars: function(){
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
},
getUrlVar: function(name){
return $.getUrlVars()[name];
}
});

comme ça on peut utiliser soit $.getUrlVars() qui nous renvoi tout sous forme de tableau
ou bien utiliser $.getUrlVar('leNomDeMaVariable') qui renvoi juste la valeur de la variable
GillesWebmaster
Messages postés
507
Date d'inscription
mercredi 30 juin 2004
Statut
Membre
Dernière intervention
29 juillet 2009
1
Oui le résultat est le même, mais on utilise l'API JQuery... maintenant est-ce un meilleur rendement? Je n'en suis pas sûr vu qu'il faut avoir installé cette API :-)
Mais pour la forme le code est propre. Ne faudrait-il pas le mettre dans les snippets?
@karamel
Messages postés
1743
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
16 janvier 2020
52
"et c'est en jquery"

je ne comprend pas pourquoi un tel commentaire on est sur www.javascriptfr.com et pas sur www.jqueryfr.com
testabc
Messages postés
33
Date d'inscription
jeudi 17 juillet 2008
Statut
Membre
Dernière intervention
23 juillet 2014

ah et jquery c'est quoi peut etre ? du php ??
la prochaine fois, prends le temps, réfléchis et ne soit pas si impulsif...

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.