Transmettre une variable JS dans l'adresse

Fermé
CarMic - 22 déc. 2014 à 23:22
 CarMic - 26 déc. 2014 à 12:34
Bonjour,

J'ai une bannière qui fait défiler des images en JS avec .css('left') et qui est présente sur plusieurs page html utilisant php sous Joomla.
Lorsque je change de page html, l'animation repart chaque fois à 0 car le JS réinitialise toutes les variables.
Je souhaiterais donc repartir de la dernière position qui est dynamique.

Vu que les variables 'super' globale n'existe pas et après plusieurs lecture de différent sujets, je ne vois que $_GET pour répondre à mon sujet mais comment passer la dernière position .css('left') en paramètre de la ligne d'adresse pour la récupérer sur la page suivante avec $_GET?

Peut être avez vous aussi une autre solution?
Merci de votre aide.
A voir également:

4 réponses

Utilisateur anonyme
22 déc. 2014 à 23:24
Tu peux toujours transmettre avec un système d'ancre.
0
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137
24 déc. 2014 à 15:19
Bonjour,

Les variables se transmettent à une page de traitement soit par un formulaire (et récupérées dans la page de taitement avec $_POST["variable"]) soit dans l'URL (ex: https://www.pagesjaunes.fr/?page=12&photo=153 et récupérées dans la page de traitement dans laquelle $_GET["page"] sera égal à 12 et $_GET["photo"] sera égal à 153.

Pour passer une valeur javascript dans l'URL, il faut contruire l'URL en javascript et y aller ensuite.

Supposons, pour l'exemple, que la variable JS 'page' soit égale à 12 et la variable JS 'photo' soit égale à 153. l'URL sera stockée dans la variable JS 'url'.

// fonction Javascript
function gotoURL(page,photo) {
     var page, photo;
     // --- Construire l'URL
     url = 'http://www.monsite.fr/page.php' + page + '&photo' + photo;
     // --- Y aller directement
     document.location = url;
     // --- NB: On pourrait aussi faire directement :
     // document.location = 'http://....' + page + .....
     // --- Ou retourner le lien pour utilisation ultérieure
     // return url;

}


dans la page :

Ex: si la gestion des photos et des pages est faite en PHP
<script language="javascript" type="text/javascript">
     gotoURL(<?php echo $numpage.",".$numphoto; ?>);
</script>


Ex: si la gestion des photos et des pages est faite en Javascript
<script language="javascript" type="text/javascript">
     // Cas d'accès direct [document.location dans la fonction gotoURL()]
     gotoURL(page,photo);
     // Cas où on place un lien [return dans la fonction gotoURL()]
     lien = '<a href="javascript:' + gotoURL(page,photo)
          + '>Aller à la page ' + page + '</a>';
     document.write(lien);
</script>


Je ne sais si cela correspondra à ton cas spécifique, mais si j'avais à faire quelque chose dans le genre, je tournerais autour de ça...

Allez, bonnes fêtes... ;-)

NB: Merci de le marquer comme Résolu si ton problème est réglé.
0
Utilisateur anonyme
24 déc. 2014 à 15:52
Bonjour

Si je comprends ton problème, cette variable ne sert qu'au javascript. Il est donc inutile de la récupérer dans le serveur, que ce soit par GET ou par POST.
Le plus simple est que ton javascript l'enregistre dans un cookie, et que la page suivante récupère ce cookie également en javascript. Ça va aussi être envoyé au serveur, mais PHP n'aura rien à voir là-dedans. Tu peux même utiliser le stockage local de javascript, ça ne passera plus du tout par le serveur.
0
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137
24 déc. 2014 à 16:48
C'est effectivement une solution mais pour ce qui me concerne, je n'utilise jamais de cookie et je me refuse, dans mes pages, à en faire l'utilisation car je me dis que si d'autres personnes, par sécurité, configurent leur navigateur pour ne pas accepter les cookies (et crois-moi, il y en a plus qu'on ne le croit), le système ne fonctionnera pas.

L'idéal est de pouvoir s'en passer pour que, cookies acceptés ou non, le système puisse fonctionner quand sans problème. C'est *mon* point de vue et il n'engage que moi. Certains peuvent le trouver discutable, je l'admets ; mais j'essaye autant que possible d'éviter toutes les techniques qui pourraient jouer sur la sécurité et le pistage. C'est plus une question éthique que technique.
0
Utilisateur anonyme
24 déc. 2014 à 18:10
On n'a besoin que de cookies de session pour ça, pas de cookies permanents. Ils ne posent aucun problème d'éthique ni de sécurité à ma connaissance. Je ne vois pas de raison sérieuse de les interdire.
Reste le stockage local, qui est d'ailleurs encore plus pratique.
0
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137 > Utilisateur anonyme
25 déc. 2014 à 02:43
Mais je n'interdis rien ! Je ne faisais qu'indiquer *ma* manière de travailler et ses raisons sans l'imposer à quiconque et d'ailleurs comment le pourrais-je ? Ensuite, chacun fait comme bon lui semble...
Cela dit, bon Noël et bonnes fêtes d fin d'année...
0
Utilisateur anonyme
25 déc. 2014 à 09:36
Quand je parlais d'interdire, ce n'était pas de toi que je parlais, je voulais dire "régler son navigateur pour refuser même les cookies de session".
Je comprends qu'on puisse avoir des réticences vis à vis des cookies en général, mais vis à vis des cookies de session je ne vois pas. Pour reprendre tes mots de "sécurité et de pistage", les cookies de session ne posent aucun problème à ce sujet. S'il y en a, j'aimerais bien rencontrer un jour quelqu'un qui me fasse changer d'avis en m'expliquant lesquels (en termes techniques et pas à l'aide d'une affirmation gratuite étayée par le seul fait que chacun est libre de ses opinions, ce qui est l'argument le plus fréquent et le plus faible que je connaisse).
Bonnes fêtes à toi aussi, et aux tiens.
0
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 137 > Utilisateur anonyme
Modifié par heliconius le 25/12/2014 à 12:51
La grande difficulté réside dans la navigation elle-même. Certains sites utilisent des cookies de session, de dangerosité moindre, et d'autres des cookies de pistage et de traquage, nettement plus discutables. Le problème c'est qu'on ne sait pas, a priori, comment le site est construit et donc s'il n'utilise seulement que des cookies de session ou s'il poursuit d'autres objectifs.

Et même si techniquement il était possible de changer le paramétrage de son navigateur avant de cliquer sur un lien, la navigation de site en site deviendrait un calvaire s'il fallait changer à chaque fois son paramétrage d'autant plus que lorsqu'un lien est affiché dans une page, rien n'indique si la cible du lien utilise ou non des cookies ou, s'il en utilise, quelle est la nature de ceux-ci. Bien sûr certains sites sont connus pour leurs pratiques mais la plupart du temps, on l'ignore. De plus il me semble, mais je dis peut-être une bêtise donc j'émets beaucoup de réserves sur ce point, je crois qu'un changement de paramétrage du navigateur ne prend effet qu'à une nouvelle session du navigateur, qu'après un redémarrage. La navigation dans ces conditions de changement deviendrait alors quasiment impossible. D'où une politique de sécurité par défaut prise par l'utilisateur : "j'autorise ou non l'utilisation des cookies". Tous les cookies. Je ne connais évidemment pas tous les navigateurs mais je n'ai pas vu dans celui que j'utilise un réglage différencié entre cookies de session et autres cookies.

Cela me fait un peut l'effet de la punition collective. Certes, elle atteint les coupables mais les autres sont touchés aussi. Là, vu qu'il n'y a pas de distinction dans les cookies, si on les empêche d'agir c'est pareil. Tant mieux s'ils vous pistaient, dommage s'ils apportaient du confort au programmeur. D'où mon choix, lors du développement des pages, de travailler sans l'utilisation de cookies, au cas où...

De toute façon, ce n'est pas parce que "Je comprends qu'on puisse avoir des réticences vis à vis des cookies en général, mais vis à vis des cookies de session je ne vois pas" que tout le monde a l'esprit aussi affûté. Et le développeur d'une page est souvent obligé de tenir compte de toutes les attitudes possibles et de ranger au placard des techniques basées sur une bonne connaissance et qui lui apportent un certain confort, au bénéfice d'autres moins confortables mais qui marcheront quelque soit l'état d'esprit du visiteur.
0
Bonjour,

Merci à tous pour vos réponses. Je vais essayer pour commencer la méthode de heliconius (merci pour ce post très détaillé) et si j'ai le courage, je verrai à tester aussi les cookies.

Merci encore et bonnes fêtes de fin d'année

Résolu
0