Comment récupérer une variable GET en javascript après un URL rewriting
abhoryo
Messages postés28Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention29 août 2008
-
29 août 2008 à 00:38
ludwig666z
Messages postés1Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention19 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.
A voir également:
Comment récupérer une variable GET en javascript après un URL rewriting
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 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 )
abhoryo
Messages postés28Date d'inscriptiondimanche 25 mai 2003StatutMembreDernière intervention29 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.
ludwig666z
Messages postés1Date d'inscriptionmercredi 30 mai 2007StatutMembreDernière intervention19 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.