2010-01-29 3 views
0

Je Javascript mettre à jour mon URI comme ci-dessous:Quelle est la meilleure façon d'accéder à une variable URI après un hashtag de PHP?

/index.php?page=list#page=news 

Mais je voudrais faire la page = nouvelles accessibles en quelque sorte de mon serveur de sorte que lorsque l'URI est copié et collé, il irait à la page des nouvelles. Quelle est la meilleure façon de procéder?

J'ai essayé $_SERVER['REQUEST_URI'] mais tout ce qui est stocké dans $_SERVER se trouve avant l'étiquette de hachage.

Répondre

4

Vous ne pouvez pas. Ces données, appelées fragment, sont réservées au traitement côté client et ne sont donc jamais envoyées au serveur. La seule façon d'utiliser le fragment est d'avoir Javascript à un moment donné. Cela signifie probablement vérifier un hash-tag sur la page onload, puis en affichant les données correctes.

Vous pouvez charger votre page entière via Javascript. Bien qu'il tuerait la compatibilité pour tous ceux qui désactivé Javascript, il veillera à ce que la balise de hachage se finalement envoyé à PHP

Fondamentalement, il ressemblerait à quelque chose comme ceci:

  • PHP envoie la page
  • Javascript lit le hastag
  • Faire une URL avec un paramètre hashtag (loader.php? page = liste & page = nouvelles)
    (Notez que dans ce qui précède, page=list wil être outrepassée par page=news, si $_GET['page'] sera news.
  • Appel AJAX à PHP
  • Charger le contenu dans un div.

(Et cette question est très bien une question double)

+0

Merci pour la réponse rapide. Serait-ce aussi possible avec une redirection de client javascript? Mais comment pourrais-je l'obtenir pour ignorer l'inclusion de hashtags de la navigation de la page pour empêcher une boucle infinie? – ensnare

+0

Ce que j'ai suggéré est une manière très "Javascript Application" de le faire, où vous ne gardez qu'une seule page ouverte, et la modifiez avec des charges AJAX. Vous pourriez faire quelque chose qui, en Javascript, vérifie si la variable GET 'page' était la même que la variable hashtag' page', elle ne redirige pas. –

Questions connexes