Avoir une partie d'URL

Avoir une partie d'URL - Javascript/Node.js - Programmation

Marsh Posté le 29-05-2015 à 12:12:03    

Bonjour,
Voilà, ma question est assez simple, la réponse peut-être un peu moins: pour une URL de type hhhhttp://lesite.com/catégorie?ville=xxxx&adresse=yyyy"
"yyyy" étant une saisie d'internaute, donc variable. Je voudrais récupérer cette variable en javascript.
J'avais commencé comme ceci: window.location.search > ?ville=xxxx&adresse=yyyy += .substring(1) > ville=xxxx&adresse=yyyy += split('&') >  
Array [ "ville=xxxx", "adresse=laSaisie" ]
Je pourrais faire window.location.search.substring(1).split('&')[1].substring(8) pour ne garder que ce qui suit après le signe égal d'adresse MAIS, je voudrais ne veux pas utiliser [1] car peut-être un jour Adresse sera en indice 0 ou encore 4 par exemple. Un deuxième MAIS est que je ne veux pas utiliser [8] pour supprimer "adresse=" (8 caractères) car un jour Adresse pourrait s'appeler "location=" ou autres... (chaîne de caractères plus, ou moins longue).
 
La solution serait-elle de faire une recherche approximative en parcourant le tableau ?  
 
J'ai essayé:
 
if (window.location.search.substring(1).split('&').indexOf("adresse=rueLappe" ) > -1) {
    alert("ok!" )
} else {
    alert("bad!" )
}
 
Qui me renvoie "ok!"
Et quand dans l'indexOf je mets ("adresse=" ) ça me renvoie "bad!". J'ai essayé ("adresse="%) mais çe ne passe pas lol
 
Comment avoir "yyyy" qui est une saisie de l'internaute, merci à vous.

Reply

Marsh Posté le 29-05-2015 à 12:12:03   

Reply

Marsh Posté le 01-06-2015 à 11:04:03    

Salut tu peux utiliser une fonction dans ce genre

Code :
  1. function parseSearch (search)
  2.  {
  3.   var q = {};
  4.   search = search.substring (1);
  5.   if (search.length)
  6.   {
  7.    search.split (/&/g).forEach (function (v) // on peut imaginer rajouter dans l'expression reguliere du split d'autres séparateurs comme "&"
  8.     {
  9.      var t = v.split ('=');
  10.      q[t[0]] = t[1];
  11.     });
  12.   }
  13.   return q;
  14.  }
  15. var search = parseSearch (window.location.search);


 
Donc pour une url du type  
http://lesite.com/catégorie?ville= [...] resse=yyyy&rien
 
tu pourras alors acceder aux params comme ceci
search['ville']  // contient 'xxxx' . search.ville renvoit le même résulrat
search.rien // existe mais renvoit undefined
 
Mais comme search.nope renvoit aussi undefined, pour tester si un param existe vraiment et récupérer sa valeur, tu peux faire :
ville = ('ville' in search && search.ville) || "une valeur par défaut";


---------------
We deserve everything that's coming...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed