RÉCUPÉRATION DES PARAMÈTRES PASSÉS EN PARAMÈTRES D'URL

Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005
- - Dernière réponse : cs_roro06
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007
- 29 oct. 2008 à 09:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29377-recuperation-des-parametres-passes-en-parametres-d-url

Afficher la suite 
cs_roro06
Messages postés
732
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
29 octobre 2007
-
certes ...
davidf007
Messages postés
3
Date d'inscription
mardi 18 novembre 2003
Statut
Membre
Dernière intervention
28 octobre 2008
-
Et si vous le voulez vraiment pourquoi pas les expressions régulières pour splitter ...
davidf007
Messages postés
3
Date d'inscription
mardi 18 novembre 2003
Statut
Membre
Dernière intervention
28 octobre 2008
-
function getParamURL (url,param)
{
// Exemple bidon _
//
// index 0 1 2 3 4 5 6 7 8 9 10 11 12
// url[index] A B C ? x = 3 & y a = 2 7

// getParamURL (url,x) (url,ya)
// posParams 3 3
// debParam 4 8
// debParam+= 6 11
// finParam 7 -1
// substring (6,7)
// substr (11,2)
// retourne "3" "27"

var posParams = url.indexOf ('?', 0);
if (posParams < 0) return null;

var debParam = url.indexOf (param+'=', posParams+1);
if (debParam < 0) return null;

debParam += param.length()+1;

var finParam = url.indexOf ('&', debParam);
if (finParam < 0) return url.substr (debParam, url.length()-debParam);
else return url.substring (debParam, finParam);
}

// à tester (pas encore fait)
davidf007
Messages postés
3
Date d'inscription
mardi 18 novembre 2003
Statut
Membre
Dernière intervention
28 octobre 2008
-
Ce code est tout sauf optimal ...

Il découpe l'ensemble de la chaîne et y stocke dans un tableau (affectations mémoire)
Il parcours le tableau pour y trouver le paramètre ... complexité O(n) ridicule !

Si au moins le découpage était stocké (je ne connais pas trop les capacités du javascript)
sous la forme d'une table de hachage ou autre structure à temps de parcours par clé en O(log(n)) ou en O(1).

Pourquoi ne pas simplement :

Chercher la position du caractère ? dans l'URL

Si non trouvé -> retourner null

Si trouvé ... chercher depuis la position du ? et faire une rechercher de chaîne pour y trouver "alpha=" et en retirer une sous-chaîne depuis la position après le = et jusqu'au prochain & (ou jusqu'à la fin de la chaîne si aucun &...).

D'ailleurs je vais le faire tout prochainement dans le cadre d'un projet ...

Sans rancune.
narksh
Messages postés
2
Date d'inscription
dimanche 18 janvier 2004
Statut
Membre
Dernière intervention
23 mai 2006
-
J'ai une url email.php?a=1&b=2&c=3

Je veux afficher
si la variable a existe alors
je veux afficher

sinon


de meme pour b et c

Comment faire SVP