Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wyświetlanie jako subfolder w pasku adresu
sadistic_son
post 2.01.2023, 11:33:37
Post #1





Grupa: Zarejestrowani
Postów: 1 487
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cześć,
Jak zrobić żeby po kliknięciu w button 'add' w pasku adresu w przeglądarce wyświetlało 'http://localhost/strona/add-product' ?
Oczywiście nie chcę przekierowywać tym buttonem do pliku w folderze add-product, bo takowy folder nie istnieje.
Dzięki.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Salvation
post 2.01.2023, 12:22:33
Post #2





Grupa: Zarejestrowani
Postów: 357
Pomógł: 70
Dołączył: 15.07.2014

Ostrzeżenie: (0%)
-----


przy pomocy pliku .htaccess
Go to the top of the page
+Quote Post
sadistic_son
post 2.01.2023, 14:25:10
Post #3





Grupa: Zarejestrowani
Postów: 1 487
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


No dobra, ale trochę dokładniej bym prosił. Przecież w .htaccess opcji jest bardzo duzo. Nie bardzo mam pomysł o co w ogóle wujka google pytać. Zapytania typu "php htaccess subfolder in address line" nie dają mi zadowalających rezultatów.
Dopowiem tylko, żeby była jasność, że chodzi mi o coś w stylu:
  1. if(isset($_GET['button']) && $_GET['button'] == 'add'){
  2. $address = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'/add-product';
  3. set_browser_address_value($address);
  4. }


Szkoda tylko że taka funkcja jak set_browser_address_value nie istnieje oraz wiem, że przez htaccess osiąga się to inaczej niż powyżej. Czyli nie chodzi mi o przekierowanie a jedynie wyświetlenie w pasku adresu wartości którą sam zdefiniuję.

Ten post edytował sadistic_son 2.01.2023, 14:27:14


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
nospor
post 2.01.2023, 15:30:09
Post #4





Grupa: Moderatorzy
Postów: 36 468
Pomógł: 6300
Dołączył: 27.12.2004




Cytat
Nie bardzo mam pomysł o co w ogóle wujka google pytać.

Ladne URL
tudziez po angielski NICE URLs


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Salvation
post 2.01.2023, 15:34:35
Post #5





Grupa: Zarejestrowani
Postów: 357
Pomógł: 70
Dołączył: 15.07.2014

Ostrzeżenie: (0%)
-----


Możesz spróbować coś takiego:
Kod
RewriteEngine On
RewriteRule ^strona/add-product$ /index.php?action=add-product [QSA]

W HTML już normalny URL: `href="/strona/add-product"` i w `index.php` pod akcją: "add-product" z GET dostaniesz swój request.

Ogólnie, to szukaj pod frazą: pretty url htaccess, bo to co podałem wyżej, można regexem ogarnąć, żeby nie pisać każdego przypadku URL-a. Tylko, że wtedy 404 będziesz musiał sam sobie ograć w kodzie.

Ten post edytował Salvation 2.01.2023, 15:37:59
Go to the top of the page
+Quote Post
sadistic_son
post 2.01.2023, 16:23:31
Post #6





Grupa: Zarejestrowani
Postów: 1 487
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Ok, 'nice urls' oraz 'pretty url htaccess'. Dzięki, widzę że jest trochę samouczków.
Natomiast to co Salvation podał to mi działa i chętnie zostanę przy tym rozwiązaniu, jednak napotkałem taki problem, że w zależności od tego który przycisk w formularzu został naciśnięty to inna strona powinna się wyświetlić. Czyli odniesienie w form action jest do tego samego adresu, i w takiej sytuacji to rozwiązanie już nie działa. Jakieś pomysły jak to rozwiązać?

Ten post edytował sadistic_son 2.01.2023, 16:24:07


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Salvation
post 2.01.2023, 16:28:45
Post #7





Grupa: Zarejestrowani
Postów: 357
Pomógł: 70
Dołączył: 15.07.2014

Ostrzeżenie: (0%)
-----


Jeżeli ma się wyświelić strona, to nie tag `button`, a `a` powinieneś użyć w HTML-u...
Pokaż strukturę HTML najlepiej.

A wracając do problemu, to możesz rozbudować podany przeze mnie RewriteRule - poczytaj trochę tych tutoriali co znalazłeś.
Go to the top of the page
+Quote Post
sadistic_son
post 2.01.2023, 16:35:41
Post #8





Grupa: Zarejestrowani
Postów: 1 487
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cytat(Salvation @ 2.01.2023, 16:28:45 ) *
Jeżeli ma się wyświelić strona, to nie tag `button`, a `a` powinieneś użyć w HTML-u...

Wiem, ale mam narzucone, że to ma być button, i to jako część większego formularza, w którym różne buttony robią różne rzeczy.

Chwilowe rozwiązanie które znalazłem to użycie JS:
  1. <button type="button" onclick="location.href='http://<?= PRODUCT_LIST_LANDING ?>add-product';" />ADD</button>

To działa jak należy, ale zastanawiam się... rzeczywiście nie da się użyć nice urls przy użyciu POST, beż wspierania się JS?

EDIT:
Ewentualnie można by jeszcze zrobić ifa, że jeśli isset($_POST['add']) to wtedy przekierowuje na localhost/stronka/add-product ale to chyba rozwiązanie na około i nie do końca poprawne.

Ten post edytował sadistic_son 2.01.2023, 16:39:26


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Salvation
post 2.01.2023, 17:07:41
Post #9





Grupa: Zarejestrowani
Postów: 357
Pomógł: 70
Dołączył: 15.07.2014

Ostrzeżenie: (0%)
-----


Ale ja nie rozumiem co chcesz osiagnąć... Masz w folmularzu dwa buttony i chcesz, żeby kierowały do dwóch innych page'y?
Go to the top of the page
+Quote Post
nospor
post 2.01.2023, 17:49:38
Post #10





Grupa: Moderatorzy
Postów: 36 468
Pomógł: 6300
Dołączył: 27.12.2004




Cytat
rzeczywiście nie da się użyć nice urls przy użyciu POST, beż wspierania się JS?

Nie myl dwoch rzeczy. Niewazne czy masz ladne url czy standardowe, do nie da sie wyslac formularza do dwoch roznych URLi od tak sobie. Wiec ladne URL tu nie ma ja nic do rzeczy.

Na co chcesz zrobic sa 3 drogi:

1) Posiadac dwa rozne formularze i kazdy kieruje gdzie ma kierowac
2) Uzycie js
3) MIec jeden URL dla formularza i w zaleznosci co kliknieta to potem w z tego url przekierowac gdzie trzeba. To co podales ostatnie jako "na okolo"

Najlepsze jest rozwiazanie 1, potem 3 moim zdaniem. js to ostatecznosc. Chyba ze twoja strona tak czy siak wymaga js do dzialania to wtedy bez roznicy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
gino
post 2.01.2023, 18:19:41
Post #11





Grupa: Zarejestrowani
Postów: 321
Pomógł: 52
Dołączył: 18.02.2008

Ostrzeżenie: (0%)
-----


Możesz też pobawić się w js z window.history.pushState, coś w stylu:
Kod
<script>
function changePage(){
       window.history.pushState('My page', '', '/strona/add-product');
}

</script>
<button onclick="changePage();">Add</button>


powinno przenieść Cię do żądanej strony, ale to jest zabawa z wpisem w historii i ustawieniem tego wpisu w pasku adresu. Piszę z palca, ale powinno działać.

edit: nie przenieś tylko ustawić adres

Ten post edytował gino 2.01.2023, 18:20:47
Go to the top of the page
+Quote Post
trueblue
post 2.01.2023, 19:44:59
Post #12





Grupa: Zarejestrowani
Postów: 6 762
Pomógł: 1822
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Cytat(sadistic_son @ 2.01.2023, 16:35:41 ) *
Wiem, ale mam narzucone, że to ma być button, i to jako część większego formularza, w którym różne buttony robią różne rzeczy.

Element <a> można ostylować identycznie jak <button>, <a> nie musi być tekstowym linkiem.

Tyle, że zarówno przyciskiem typu "button", jak i linkiem nie zatwierdzisz formularza, a ja nie wiem czy chcesz zatwierdzać wraz z naciśnięciem formularz czy nie.
Jeśli chcesz zatwierdzić, to wtedy rozwiązaniem jest użyciem dwóch buttonów jak napisał nospor. Przy czym button powinien być typu "submit" (z innym value od drugiego).




--------------------
Go to the top of the page
+Quote Post
sadistic_son
post 3.01.2023, 10:52:12
Post #13





Grupa: Zarejestrowani
Postów: 1 487
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cytat(Salvation @ 2.01.2023, 17:07:41 ) *
Ale ja nie rozumiem co chcesz osiagnąć... Masz w folmularzu dwa buttony i chcesz, żeby kierowały do dwóch innych page'y?

Tak. Niestety to jest narzucone z góry.




Cytat(nospor @ 2.01.2023, 17:49:38 ) *
Na co chcesz zrobic sa 3 drogi:

1) Posiadac dwa rozne formularze i kazdy kieruje gdzie ma kierowac
2) Uzycie js
3) MIec jeden URL dla formularza i w zaleznosci co kliknieta to potem w z tego url przekierowac gdzie trzeba. To co podales ostatnie jako "na okolo"

Najlepsze jest rozwiazanie 1, potem 3 moim zdaniem. js to ostatecznosc. Chyba ze twoja strona tak czy siak wymaga js do dzialania to wtedy bez roznicy



Co do 1 to niestety wymaganie odgórne mi na to nie pozwala. Stronka ma JS w innych miejscach też.




Cytat(gino @ 2.01.2023, 18:19:41 ) *
Możesz też pobawić się w js z window.history.pushState, coś w stylu:

Dzięki, ale to już magia i chyba trochę na siłę wink.gif


Cytat(trueblue @ 2.01.2023, 19:44:59 ) *
Element <a> można ostylować identycznie jak <button>, <a> nie musi być tekstowym linkiem.

Wiem, ale mam narzucone, że to musi być button. Podejrzewam, że jakiś automat będzie po tym smigać.


Cytat(trueblue @ 2.01.2023, 19:44:59 ) *
Tyle, że zarówno przyciskiem typu "button", jak i linkiem nie zatwierdzisz formularza, a ja nie wiem czy chcesz zatwierdzać wraz z naciśnięciem formularz czy nie.
Jeśli chcesz zatwierdzić, to wtedy rozwiązaniem jest użyciem dwóch buttonów jak napisał nospor. Przy czym button powinien być typu "submit" (z innym value od drugiego).

Tak, to wiem. Formularze jeszcze ogarniam wink.gif





Podsumowując, zostaję przy JS. Dzięki wszystkim za uczestnictwo w rozmowie i pomoc.

Ten post edytował sadistic_son 3.01.2023, 10:53:19


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.05.2024 - 21:25