![]() |
![]() ![]() |
![]() |
-Gość_papik_*- |
![]()
Post
#1
|
Goście ![]() |
Witam.
Mam następujący problem. Jest sobie pewna strona, na którą przekazuję zmienne w adresie: np. index.php?page=menu Na tej stronie chciałbym umieścić link, który po kliknięciu ponownie ładuje mi bieżącą stronę, ale dodając do niej kolejną zmienną: np. index.php?page=menu&id=10 Chciałbym to osiągnąć nie wpisując <a href="index.php?page=menu&id=10">, aby ten link był uniwersalny i niezależny od tego na jakiej stronie jest umieszczony. Proszę o wskazówki czy w php istnieje funkcja, która po kliknięciu na link pozwala na przeniesienie na bieżącą stronę, ale z dodaniem do niej przez GET (lub POST) kolejnej zmiennej. |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Przejrzyj sobie tablicę $_SERVER konstrukcjami jak var_export" title="Zobacz w manualu PHP" target="_manual, var_dump" title="Zobacz w manualu PHP" target="_manual etc.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 30.08.2006 Skąd: Libiąż Ostrzeżenie: (0%) ![]() ![]() |
Ok, doszedlem do czegos takiego:
W tym miejscu rodzi sie kolejny problem, zmienne dublują się i po kilku kliknięciach tworzy sie coś takiego: index.php?page=menu&id=10&id=10&id=10&id=10 Nie wiem czy w dobrym kierunku kombinuję. Jeśli w dobrym to czy istnieje możliwość uniknięcia tego, a jeśli w złym to proszę o sprowadzenie na dobrą drogę. :] |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 301 Pomógł: 25 Dołączył: 15.07.2007 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Hmm, jeżeli dobrze rozumiem to chcesz żeby formularz przekierowywał do tej samej strony czy jakoś tak.
W każdym razie jeżeli cię dobrze rozumiem to wystarczy, że nie będziesz określał parametru "action" np:
Tak się składa, że akurat wczoraj nad tym samym się zastanawiałem i akurat na coś takiego wpadłem (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 4.08.2007 Skąd: Pomorze Ostrzeżenie: (0%) ![]() ![]() |
(...) W tym miejscu rodzi sie kolejny problem, zmienne dublują się i po kilku kliknięciach tworzy sie coś takiego: index.php?page=menu&id=10&id=10&id=10&id=10 (...) Rozwiązaniem tej konkretnej kwestii jest zastosowanie konstrukcji CODE if(!isset($_GET['id])) <a href="<?php echo $page; ?>&id=10">link</a> else <a href="<?php echo $page; ?>">link</a> odnośnie wątku głównego, rozumiem, że chodzi o to, żeby odnośnik kierował do strony, w której jest umieszczony ( czyli jeśli odnośnik jest w index.php, kieruje na index.php, jeśli w dwa.php kieruje do dwa.php ) jeśli o to chodzi, to CODE $root_dir = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']; jest jak najbardziej poprawne |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 312 Pomógł: 9 Dołączył: 14.10.2006 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
Hmm, jeżeli dobrze rozumiem to chcesz żeby formularz przekierowywał do tej samej strony czy jakoś tak. W każdym razie jeżeli cię dobrze rozumiem to wystarczy, że nie będziesz określał parametru "action" Niestety to nie zadziała pod przeglądarką SAFARI gdy masz ustawiony metatag BASE. Przekieruje cię właśnie tam gdzie wskazuje BASE. Oczywiście jeśli tego nie używasz to problem z głowy. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 30.08.2006 Skąd: Libiąż Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje za wszystkie odpowiedzi :]
strife Nie do końca o to chodzi, bo $_SERVER['SCRIPT_NAME'] zwraca mi tylko nazwę pliku, np. index.php, a ja potrzebuje żeby zwróciło mi nazwę pliku wraz ze zmiennymi np. index.php?page=menu. Dodawanie do $root_dir w dalszej kolejności zmiennych jest też w pewnym stopniu uciążliwe, bo muszę najpierw wyciągać zmienne przekazane na obecną stronę i wrzucać je do $root_dir , a nie zawsze będę wiedział jakie akurat zmienne są przekazane na daną stronę. Chciałbym aby to była uniwersalna funkcja, którą mogę zastosować na dowolnej stronie, a proces pobierania zmiennych był automatyczny. Ten efekt osiągnąłem dzięki $_SERVER['REQUEST_URI'], ale prawdę powiedziawszy nie wiem czy tak może być, bo nigdy wcześniej go nie stosowałem. bmL Niestety formularz mnie nie urządza, bo chciałbym aby to było powiązane ze zwykłym linkiem na stronie. klucznick Jeśli chodzi o $_SERVER['SCRIPT_NAME'] to wyżej wyjaśniłem dlaczego on mnie nie satysfakcjonuje. Natomiast zastosowanie IF jest skuteczne i przy przesłaniu jednej zmiennej na razie działa mi bez zarzutu. Zastanawia mnie tylko teraz i kombinuje jak to skutecznie zastosować gdy w linku będę chciał przesłać więcej niż jedną zmienną. Musze zweryfikować obecność każdej ze zmiennych i na tej podstawie wygenerować odpowiedni link. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 301 Pomógł: 25 Dołączył: 15.07.2007 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
No to może tak:
Pisane trochę z palca więc mogą być błędy ale założenie jest chyba słuszne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował bmL 11.08.2007, 14:32:28 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 30.08.2006 Skąd: Libiąż Ostrzeżenie: (0%) ![]() ![]() |
No i bardzo ładnie chodzi :]
Co prawda pierwotnie zrobiłem trochę po swojemu ale, rozwiązanie bmL bardziej mi się podoba, wiec zmieniłem. Dziękuje za wszystkie porady. Poniżej gotowe, chodzące rozwiązanie problemu dla dwóch zmiennych. Zrobiłem funkcję, żeby łatwiej było zastosować na innych stronach.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 04:14 |