Comment récupérer une variable GET en javascript après un URL rewriting

abhoryo Messages postés 28 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 29 août 2008 - 29 août 2008 à 00:38
ludwig666z Messages postés 1 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 19 février 2009 - 19 févr. 2009 à 16:20
Bonsoir, cela fait plusieurs heures que je recherche une solution à mon problème.

Ce que je cherche à faire : Récupérer une variable GET en javascript après un URL Rewriting via htaccess.

Dans mon fichier htacces j'ai :
RewriteRule ^(.*),(.*)\.html$ /$1\.php?toto=$2 [QSA,L]

Dans mon fichier javascript j'ai ça :
var tmp = unescape(window.location.search.substring(1).split("&"));
     var $_GET = [];
     for (var i in tmp)
     if (tmp[i].indexOf("=")>0)
         $_GET[decodeURI(tmp[i].substring(0, tmp[i].indexOf("=")))] = decodeURI(tmp[i].substring(tmp[i].indexOf("=")+1));
     else
         $_GET[decodeURI(tmp[i])]='';
    alert("toto="+$_GET["toto"]);

Quand je lance l'adresse "index.php?toto=test" le javascript me popup "toto=test" donc le javascript marche, logique.

Mais quand je lance l'adresse "index,test.html", l'url rewriting joue son rôle et affiche ma page mais le javascript me popup "toto=", donc là ça ne marche plus.
La variable tmp est vide et window.location.href ="index,test.html". (Je précise qu'en php $_GET["toto"] me retourne bien ce qu'il faut)

Voilà mon problème. Est-ce moi qui me suis planté dans l'url rewriting ou est-ce une limitation ? Ou peut-être faudrait-il utiliser autre chose que window.location.search pour avoir la vraie adresse.

Je remercie d'avance celui qui m'aidera car il me rendra un énorme service.

3 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
29 août 2008 à 06:11
bonjour,

>>en php $_GET["toto"] me retourne bien ce qu'il faut
t'es sûr de ton javascript alors ?
alert(window.location.search); ça donne quoi ?
si c'est une erreur javascript ( pas contrôlé ! ),
regarde ici par exemple ( Manipuler les paramètres passés dans l'URL )

Cordialement     Bul   [mon Site] [M'écrire], <!--
0
abhoryo Messages postés 28 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 29 août 2008
29 août 2008 à 09:52
alert(window.location.search); donne un popup vide comme ma variable tmp dans mon code.
Pour le code donné dans le lien, idem window.location.search est vide donc il redirige sur "index.php?toto=test"(code écris en brut) donc après window.location.search n'est plus vide et le javascript arrive a récupérer ma variable toto MAIS l'adresse a changée donc on perd un peu l'intérêt de l'url rewriting.

Ce que je n'arrive pas à comprendre c'est pourquoi en PHP on y arrive et pas en javascript. Peut-être existe-t-il une autre varaible que window.location.search ou window.location.href.
0
ludwig666z Messages postés 1 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 19 février 2009
19 févr. 2009 à 16:20
Petit rappel:
Javascript -> côté client
Php -> côté serveur
Donc javascript n'a pas accès aux variables rewritées (oui j'invente des mots) mais uniquement à l'url qui s'affiche dans le navigateur.
0
Rejoignez-nous