Witam.
W pliku index.php, który jest moją stroną główną mam taki formularz:
<form class="pl-en" action="index.php" method="post">
<div>
<button type="submit" name="lang" value=<?php include "switch.php"; echo($language);?>>
</button>
</div>
</form>
w pliku switch.php mam taki:
<?php
$language = "EN";
if(isset($_POST['lang'])) {
if($_POST['lang'] == "EN") {
$language = "PL";
}
if($_POST['lang'] == "PL") {
$language = "EN";
}
}
?>
Przycisk, który wysyła formularz (i zarazem jest jego jedynym elementem) jest przełącznikiem języka treści strony polski/angielski. Na podstawie wartości zmiennej $language inne skrypty PHP pobierają z bazy danych tekst po polsku lub po angielsku i dzięki wstawkom PHP w kodzie HTML w odpowiednich miejscach pojawiają się napisy w wybranym języku.
Wszystko działa ok poza jednym szczegółem. Dopóki nie wciśnie się zmiany języka, można reloadować stronę ile się chce i się przeładowuje bez problemów. Ale wystarczy raz wcisnąć zmianę języka i od tego momentu za każdym przeładowaniem przeglądarka wywala komunikat, że nastąpi ponowne wysłanie formularza. Na bank można temu zaradzić, ale nie wiem jak, więc pytam :)
Szukałem w sieci ale nie znalazłem. Mój przypadek jest nietypowy, bo po naciśnięciu submita nie ma być żadnego przekierowania do żadnej innej podstrony, tylko ma się załadować ponownie ta sama strona (index.php), tyle że z podmienionym tekstem. I dlatego header(location) na nic się tu nie zda.
Z góry dzięki za pomoc i podpowiedzi :)
Pozdrawiam.