2011-10-05 5 views
0

Je sais que $ _SERVER ['REQUEST_URI'] fonctionne pour obtenir l'URL de la page en cours, mais il ne contient pas le #post à la fin de l'url. J'aime utiliser le #blah à la fin pour faire défiler la page à un certain point. Exemple:

index.php#answer 

en utilisant $ _SERVER [ 'REQUEST_URI'] renvoie simplement:

index.php 

Comment puis-je faire lire le #answer à la fin aussi?

Répondre

2

Les hachages d'URL ne sont jamais envoyés au serveur. Il est donc impossible de le récupérer en utilisant PHP ou tout autre langage côté serveur.

Pour réaliser le défilement, donnez l'élément que vous voulez faire défiler jusqu'à id="answer" - le navigateur passera automatiquement à cet élément. Dans le cas où vous voulez effectuer un défilement en douceur en utilisant JavaScript, vous pouvez accéder au hachage via location.hash - il y a de jolis plugins jQuery disponibles qui se chargeront de défiler en douceur vers un élément spécifié.

+0

Merci, alors comment puis-je faire PHP aller à un certain endroit sur la page? Je ne connais pas le code entier, juste une idée –

+1

PHP ne peut pas "aller à un certain endroit". Il fonctionne sur le serveur, donc il renvoie juste le HTML au navigateur. Si vous voulez transmettre des données au script PHP, utilisez les arguments GET, c'est-à-dire 'foo.php? Whatever = quelquechose ', puis accédez-y en utilisant' $ _GET [' quelquechose '] 'dans votre script PHP. – ThiefMaster

0

Cela ne fonctionnera pas puisque les hachages ne seront pas envoyés au serveur pour l'ancrage sur la page.

Vous pouvez uniquement utiliser le PATH_INFO et le QUERY_STRING ou le REQUEST_URI qui est la combinaison des deux mentionnés précédemment. QUERY_STRING est la partie après un ? optionnel dans l'URI.

Vous pouvez accéder à ce hachage à partir de javascript et l'envoyer via AJAX si vous le souhaitez vraiment.

Questions connexes