-
1. Data: 2011-06-16 13:02:02
Temat: HTML - jak to zrobić?
Od: Marek <b...@e...com>
Witam,
W CMS mam formatkę formularza, która może pojawiać się pod różnymi adresami
URL. W kodzie HTML mam:
<form action="" ....
Submitowanie formularza różnymi przyciskami powoduje, że JS dopisuje do
action ?mode=costam No i powstał problem w nowych przeglądarkach. Kiedyś
form action="?mode=costam" pozostawiało pod danym URL i uzupełniało po
przeładowaniu URL o zmienną GET "mode". Obecnie ta sama akcja powoduje
przekierowanie do strony głównej serwisu. Czy jest jakiś zapis
umożliwiający pod bieżącym URL? Czyli:
<form action="currentURL"
Czy muszę badać poprzez JS jaki URL jest aktualnie w użyciu i kopiować go
do action?
-
2. Data: 2011-06-16 14:19:27
Temat: Re: HTML - jak to zrobić?
Od: Marek <b...@e...com>
P.S.
Pomyślałem sobie, że prawdopodobnie nie da się tego osiągnąć w HTML więc
pomysłem jest PHP, które może wstawić nazwę pliku do action. Czy jest jakaś
funkcja w PHP, która pozwala wyodrębnić nazwę pliku z URL? Okazuje się, że
basename() tego nie robi.
np. basename($_SERVER['REQUEST_URI']); zwraca coś takiego:
plik.php?par1=123&par2=567
zamiast
plik.php
Sądziłem, że to zadanie jest trywialne ale chyba jednak trzeba całą funkcję
napisać do pozyskiwania nazwy pliku.
-
3. Data: 2011-06-16 14:28:12
Temat: Re: HTML - jak to zrobić?
Od: Marcin Miczek <m...@N...miczek.pl>
W dniu 2011-06-16 15:02, Marek pisze:
> W CMS mam formatkę formularza, która może pojawiać się pod różnymi adresami
> URL. W kodzie HTML mam:
> <form action="" ....
> Submitowanie formularza różnymi przyciskami powoduje, że JS dopisuje do
> action ?mode=costam No i powstał problem w nowych przeglądarkach. Kiedyś
> form action="?mode=costam" pozostawiało pod danym URL i uzupełniało po
> przeładowaniu URL o zmienną GET "mode". Obecnie ta sama akcja powoduje
> przekierowanie do strony głównej serwisu. Czy jest jakiś zapis
> umożliwiający pod bieżącym URL? Czyli:
> <form action="currentURL"
A ustawienie <form action="./" ... nie pomaga? Jeśli masz URL-e typu
xyz/abc/index.html powinno IMO działać. W przeciwnym wypadku możesz
wyłuskać currentURL w PHP albo JS.
Pozdrawiam
--
Marcin Miczek
-
4. Data: 2011-06-16 14:36:46
Temat: Re: HTML - jak to zrobić?
Od: Marcin Miczek <m...@N...miczek.pl>
W dniu 2011-06-16 16:19, Marek pisze:
> Pomyślałem sobie, że prawdopodobnie nie da się tego osiągnąć w HTML
> więc pomysłem jest PHP, które może wstawić nazwę pliku do action. Czy
> jest jakaś funkcja w PHP, która pozwala wyodrębnić nazwę pliku z URL?
> Okazuje się, że basename() tego nie robi.
Spróbuj http://pl.php.net/manual/pl/function.parse-url.php
--
Marcin Miczek
-
5. Data: 2011-06-16 14:53:39
Temat: Re: HTML - jak to zrobić?
Od: Borys Pogoreło <b...@p...edu.leszno>
Dnia Thu, 16 Jun 2011 15:02:02 +0200, Marek napisał(a):
> Czy muszę badać poprzez JS jaki URL jest aktualnie w użyciu i kopiować go
> do action?
Nie ma określonego zachowania dla action nie będącego poprawnym URI. Ale w
praktyce usunięcie tego atrybutu powoduje wysłanie formularza pod ten sam
adres. Oczywiście nie zalecam ;-)
--
Borys Pogoreło
borys(#)leszno,edu,pl
-
6. Data: 2011-06-16 16:26:12
Temat: Re: HTML - jak to zrobić?
Od: Marek <b...@e...com>
Dnia Thu, 16 Jun 2011 16:36:46 +0200, Marcin Miczek napisał(a):
> Spróbuj http://pl.php.net/manual/pl/function.parse-url.php
Próbowałem.
Obecnie radzę sobie tak:
$tmp=basename($_SERVER['REQUEST_URI']);
$tmp=explode("?",$tmp);
$tmp=$tmp[0];
Jednakże kwestia wydaje mi się tak trywialna, że z niedowierzaniem traktuję
niemożność załatwienia tego w 1 wierszu.
-
7. Data: 2011-06-16 16:28:54
Temat: Re: HTML - jak to zrobić?
Od: Marek <b...@e...com>
Dnia Thu, 16 Jun 2011 16:28:12 +0200, Marcin Miczek napisał(a):
> A ustawienie <form action="./" ... nie pomaga? Jeśli masz URL-e typu
> xyz/abc/index.html powinno IMO działać. W przeciwnym wypadku możesz
> wyłuskać currentURL w PHP albo JS.
Załóżmy, że index.php jest plikiem startowym oraz, że jestemy w danym
momencie na stronie costam.php
Czy:
<form action="./?par=123"
nie jest tożsame z:
<form action="index.php?par=123"
?
-
8. Data: 2011-06-16 16:30:27
Temat: Re: HTML - jak to zrobić?
Od: Marek <b...@e...com>
Dnia Thu, 16 Jun 2011 16:53:39 +0200, Borys Pogoreło napisał(a):
> Nie ma określonego zachowania dla action nie będącego poprawnym URI.
Tak, to prawda. Kiedyś jednak przeglądarki czyniły go poprawnym w tle.
> Ale w
> praktyce usunięcie tego atrybutu powoduje wysłanie formularza pod ten sam
> adres. Oczywiście nie zalecam ;-)
Sęk w tym, że jest on mi potrzebny do zdefiniowania zmiennych GET i
wysłania ich.
-
9. Data: 2011-06-16 20:47:47
Temat: Re: HTML - jak to zrobić?
Od: Borys Pogoreło <b...@p...edu.leszno>
Dnia Thu, 16 Jun 2011 18:30:27 +0200, Marek napisał(a):
> Sęk w tym, że jest on mi potrzebny do zdefiniowania zmiennych GET i
> wysłania ich.
Jeśli pominiesz action, to zostanie użyty aktualny URI z dołączonymi
parametrami GET.
--
Borys Pogoreło
borys(#)leszno,edu,pl
-
10. Data: 2011-06-17 08:27:17
Temat: Re: HTML - jak to zrobić?
Od: Marek <b...@e...com>
Dnia Thu, 16 Jun 2011 22:47:47 +0200, Borys Pogoreło napisał(a):
> Dnia Thu, 16 Jun 2011 18:30:27 +0200, Marek napisał(a):
>
>> Sęk w tym, że jest on mi potrzebny do zdefiniowania zmiennych GET i
>> wysłania ich.
>
> Jeśli pominiesz action, to zostanie użyty aktualny URI z dołączonymi
> parametrami GET.
Nawet jeśli wypełnię ten pominięty atrybut z poziomu JS poprzez string typu
"?par=123" to w ten sposób sie on zachowa również?
Pytam bardziej z ciekawości. Chciałbym wybrać rozwiązanie sprawdzające się
również w przyszłości. Poprzednie również działąło do niedawna lecz po 2
latach musiałem grzebać w starym projekcie i naprawiać to.