Site PHP indexé par la page - Pb de refresh

Résolu/Fermé
jporcher - 22 janv. 2008 à 23:21
 jporcher - 23 janv. 2008 à 10:12
Bonjour,

J'ai un site avec une frame a gauche. Pour la partie de droite, j'affiche right.php, et une variable $page, qui me dit quelle contenu y afficher. C'est une simple variable definie dans une fichier php.

Quand on clique sur un lien dans la frame de gauche, j'ai deux solutions:

1- je charge dans la frame de droite, la page right.php?page=$page.
Avantage: la frame de gauche ne clignotte pas parce qu'elle n'est pas rechargee
Inconvenient: l'URL du browser reste index.php, si l'utilisateur clique sur Refresh/Rafraichir, on retourne a la page d'accueil car $page n'est pas transmis
2- ou bien je charge dans _top index.php?page=$page.
Avantage: l'URl est changee, donc un Refresh va bien marcher
Inconvenient: La frame de gauche se redessine et c'est pas joli du tout ce clignotement

Pour fixer le probleme du Refresh dans la solution 1, j'ai pense mettre la variable page dans $_SESSION, mais a ce moment la, si tu ouvre deux tabs dans FireFox, ca coince, si le premier est sur l'accueil ($_SESSION['page'] == 'accueil') et que le second est sur la page contact ($_SESSION['page'] == 'contact'), cliquer sur Refresh dans le second tab risque de le repasser sur la page accueil car la variable $SESSION est partagee entre ces deux vues...
J'utilise cette variable SESSIon pour stocker la langue courante, mais ca ne me semble pas top d'y stocker la page courante....

Je suis vraiment coince, ces deux solutions ne me plaisent pas! Quelqu'un a une idee? Changer le comportement du Refresh serait-il une solution, est-ce faisable? Ou bien c'est inutile et je ne fais pas quelque chose comme il faut?


Jean

PS: le site est http://gitepers.free.fr (en construction)
PS: Desole pour les accents, j'ai un cliavier Qwerty....
A voir également:

4 réponses

DjSKeud Messages postés 97 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 22 avril 2015 31
23 janv. 2008 à 08:33
Bonjour,

J'ai moi même tenté de faire des frames sur la première version de mon site, mais je me suis vite rendu compte que cette solution technique est depuis bien longtemps dépassé. J'ai donc opté pour une solution plus clasique, le CSS. voila ce que ca donne : http://tomleskeud.free.fr
Ton problème est que tu ne veux pas recharger ta partie de gauche, étant donné que c'est un menu, c'est ca ? Alors je te conseil d'utiliser une solution proche de ce que tu fait à l'heure actuel, c'est à dire un "iframe", qui te permet de charger le contenu d'une page dans une partie d'une autre (attention, différent de la technologie Ajax, un peu plus dure à mettre en place).
Avec cette solution, lorsque tu cliqueras sur un lien de ton menu de gauche, la page sera rechargé avec l'url de ton choix (puisque desormais le navigateur considère que tu n'a qu'une seul page) mais par contre le menu de gauche sera instantanément zaffiché, puisque déja chargé lors du chargement de la page d'avant.

Suis-je assez clair?
0
Salut et merci pour ta reponse. Je suis un peu novice en php/html. Ce que tu appelles les iframe c'est ce qu'on balise par des <div> c'est ca. En fait tu me propose de virer ma frame "a l'ancienn" de gauche et creer une nouvelle "layer" (iframe ou <div> si tout ca c'est du pareil au meme) et d'afficher mon menu dedans.

Le fait de creer une iframe plutot qu'une bonne vieille frame fera qu'elle ne clignotera pas lorsqu'on la rechargera car deja dans le cash c'est bien ca? Dans ce cas mon parametre $page apparaitra dans la barre de titre et du coup le "Refresh" le prendra bien en compte.

Merci

Jean
0
DjSKeud Messages postés 97 Date d'inscription mardi 25 avril 2006 Statut Membre Dernière intervention 22 avril 2015 31
23 janv. 2008 à 09:40
Oui, en gros tu as compris le principe. Par contre il faut bien différencier les "iframe" des "div". Dans le 1ier cas, tu définis une partie de ta page (un rectangle ;) ) dans laquelle une autre page web va s'afficher (avec un nom different), et effectivement, l'url de ta page mettra bien en evidance ton parametre $page. Dans le second cas, avec les "div", ta page n'est constituée que d'une seul page web a proprement parlé, avec à l'intérieur de celle-ci des zones (des div) distincts.
En ce qui concerne la mise en cache, je dois dire que les deux solutions semble se valoir, puisque tu peux constater, pour la solution div, sur mon site que la partie de gauche (login, passwd, etc ...) ne "clignote" pas quand tu passes de page en page.

Is everything all right ?
0
Genial! Merci pour ton aide.

Jean
0