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és3Date d'inscriptionmardi 18 novembre 2003StatutMembreDernière intervention28 octobre 2008 28 oct. 2008 à 13:55
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és2Date d'inscriptiondimanche 18 janvier 2004StatutMembreDernière intervention23 mai 2006 23 mai 2006 à 10:47
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
chimelpremier
Messages postés544Date d'inscriptionvendredi 5 décembre 2003StatutMembreDernière intervention20 mai 2005 10 févr. 2005 à 15:41
Réponse rapide !. C'était l'erreur de débutant : guillemets en double.
href="#" provoque le rechargement de la page et dans ce cas les paramètres sont perdus, mais le onclick est éxécuté en premier et après correction de ma bévue, ça fonctionne aussi comme cela.
encore merci
cs_roro06
Messages postés732Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention29 octobre 2007 10 févr. 2005 à 14:37
Oui, la façon que tu as de l'appeler plante la fonction, je ne sais pas trop pourquoi ... surement à cause du href
Mais si tu mets:
[javascript:alert(getUrl('a')) récup variables]
ou <a onclick="alert(getUrl('a'))" ...
tu verras que ça marche.
Attention également aux guillemets en double, malvenus ici.
chimelpremier
Messages postés544Date d'inscriptionvendredi 5 décembre 2003StatutMembreDernière intervention20 mai 2005 10 févr. 2005 à 14:03
Bravo pour tes réponses avisées sur le forum.
Mais là,ça ne marche pas. Je n'ai pas compris, alors peux-tu faire un éxemple concret, merci
J'ai fait un fichier nommé var_url1.htm contenant :
29 oct. 2008 à 09:24
28 oct. 2008 à 14:38
28 oct. 2008 à 14:23
{
// 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)
28 oct. 2008 à 13:55
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.
23 mai 2006 à 10:47
Je veux afficher
si la variable a existe alors
je veux afficher
sinon
de meme pour b et c
Comment faire SVP
10 févr. 2005 à 15:41
href="#" provoque le rechargement de la page et dans ce cas les paramètres sont perdus, mais le onclick est éxécuté en premier et après correction de ma bévue, ça fonctionne aussi comme cela.
encore merci
10 févr. 2005 à 14:37
Mais si tu mets:
[javascript:alert(getUrl('a')) récup variables]
ou <a onclick="alert(getUrl('a'))" ...
tu verras que ça marche.
Attention également aux guillemets en double, malvenus ici.
10 févr. 2005 à 14:03
Mais là,ça ne marche pas. Je n'ai pas compris, alors peux-tu faire un éxemple concret, merci
J'ai fait un fichier nommé var_url1.htm contenant :
<html>
<head>
</head>
[# récup variables]
</html>