2009-10-02 21 views
28

Wiem, że istnieje wiele sztuczek do tworzenia linków, na przykład <a href="?query=string"> połączy się z bieżącą stroną po dodaniu łańcucha zapytania. Czy istnieje sposób na połączenie z bieżącą stroną, po usunięciu ciągu zapytania bez wpisywania nazwy pliku?Link do bieżącej strony bez ciągu zapytania

Przykład, na stronie foo.php?q=3, chcę zamieścić link do foo.php. Czy jest to sposób skrótu? Plik zostanie kilkakrotnie zmieniony, więc nie chcę wpisywać wiązki linków, a potem trzeba je później edytować.

Edycja: Mimo że są to pliki PHP, staram się unikać rozwiązania po stronie serwera dla tego konkretnego problemu.

+0

p.s. każdemu, kto myśli o kotwicach ... najwyraźniej społeczność tak im się nie spodoba, że ​​każdy, kto zaksięguje je jako rozwiązanie, zostanie zarzucony w otchłań nawiasów ostrych – BozoJoe

Odpowiedz

48
href="?" 

Nie dokładnie czego po - wciąż jest znak zapytania na końcu - ale funkcjonalnie równoważne.

+1

Mimo że jest to stary, robię przeglądy i komentuję, ponieważ jest on wciąż aktualny. i jest to jedyny sposób, aby to zrobić po stronie serwera (co mogę powiedzieć), który działa na adresach URL zarówno rozszerzeń, jak i rozszerzeń. – trnelson

2

Czy chcesz po stronie klienta odpowiednik $_SERVER['PHP_SELF']? Coś, co zawsze będzie linkować do pliku bez dodatkowych rzeczy po rozszerzeniu?

Nie jestem pewien, czy to działa we wszystkich przeglądarkach, ale działa doskonale w Firefoksie 3.5:

<a href="">Foo</a> 
+0

Nie usuwa istniejącego ciągu zapytania. –

+0

+1 Jako $ _SERVER ['PHP_SELF'] było tak naprawdę rozwiązaniem, którego potrzebowałem. – ajcw

+1

'Foo' Niestety, to nie działa w IE. Od: http://msdn.microsoft.com/en-us/library/cc848861%28v=vs.85%29.aspx - _Jeśli wartość HREF jest określona jako pusta wartość (href = "" lub href =), wykonanie łącza może spowodować wyświetlenie katalogu zawierającego bieżący dokument lub wygenerowanie błędu, w zależności od innych elementów w dokumencie i środowiska serwera. –

-1

Można link do bieżącej strony jesteś na z:

<a href="#">blah</a> 
+5

Nie spowoduje to nowego żądania do serwera we wszystkich przeglądarkach. –

+2

Nie sądzę, że wykona nowe żądanie w dowolnej przeglądarce. – JJJ

14

Możesz użyć <a href=".">, aby ponownie załadować bieżącą stronę, usuwając ciąg zapytania.

Aby uzyskać bardziej szczegółową odpowiedź, patrz: this.

+3

To nie działa w IE 11, ale? robi. – Mint

+1

To nie działa z adresami URL bez rozszerzenia, niestety. Jest to technika, której użyłem wyłącznie, dopóki nie wpadłem na ten problem. – trnelson

Powiązane problemy