Récupérer variable GET en Javascript

WRInaute passionné
Bonjour à tous,

Existe t-il une fonction équivalente à $_GET['var'] de PHP en Javascript ?

Je souhaiterais récupérer une variable de pagination qui se trouve dans l'url afin de l'insérer dans les balises meta title et description pour ne pas les avoirs en double dans GWT.

Merci pour vos réponses
 
WRInaute accro
le javascript étant exécuté coté client, il faut faire un "var toto = <?php echo $_GET['tavariable'] ?>" car le $_GET est coté serveur. donc le php écrira ta variable js avec la bonne valeur
 
WRInaute passionné
Merci de ta réponse,

Tu as mal compris ce que je demandais. Là tu me propose de récupérer la variable en PHP et de l'assigner dans une variable JS.

Moi je veux la récupérer en JS, car je ne suis pas dans un fichier .php, sinon je l'aurais fait directement en PHP...
 
WRInaute accro
la seule chose que tu peux faire en js est de récupérer l'url courante (document.location?) et de la parser pour récupérer tes variables de l'url, de taiter ça comme une chaine à analyser
 
WRInaute passionné
Merci Spout !

J'ai donc utilisé la fonction de ton 2ème lien de cette manière :

Code:
<script type="text/javascript">
	function getQuerystring(key, default_) {
  	  if (default_==null) default_="";
  	  key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  	  var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
  	  var qs = regex.exec(window.location.href);
  	  if(qs == null) return default_; else return qs[1];
	}
</script>

On peut récupérer n'importe quel paramètre en le passant en attribut, un peu comme la fonction $_GET. Ici je récupère mon n° de page 'p' :

Code:
var p = getQuerystring('p');

Il ne reste plus qu'à tester cette variable et afficher la bonne meta :

Code:
if (p > 1) {
document.write('<meta name="description" content="' + description + ' Page ' + p + '" />');
} else
document.write('<meta name="description" content="' + description + '" />');

Merci pour votre aide ! Problème résolu !
 
WRInaute passionné
Ok, Google ne les lis pas. Mais j'ai trouver le fichier où les metas étaient faites dans Prestahop. Je poste la solution au cas où quelqu'un tomberais là dessus (et dieu sait qu'il y en a qui cherchent).

Ma version : Prestashop 1.4.2

Dans classes/tools.php, rajouter dans function completeMetaTags (ligne 700) :

Code:
// We add the current page number to haven't duplication of title / description
$page = self::getValue('p');
if ( (isset($page)) && ($page > 1) ) {
     $metaTags['meta_title'] .= ' - Page '.$page;
     $metaTags['meta_description'] .= ' Page '.$page;
}
Juste avant :

Code:
return $metaTags;
A rajouter de la même manière dans function getHomeMetaTags pour avoir les numéros de page dans les fabricants, promotions, nouveautés.
 
Discussions similaires
Haut