Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmienna SESSION w Javascripcie.
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
togropl
Potrzebuje na stronie pisanej od zera zastosowac przełączanie języka (polski - angielski). Nie mogę zastsować zmiennej GET i POST, bo tak przesłana zmienna jest czytana tylko na następnej wczytywanej stronie. W związku z tym chcę zastosować zmienną SESSION (ew. COOKIE) o nazwie "lang" przybierającą wartość "pol" lub "eng". Tak, żeby ta zmienna była czytana przez każdą kolejną otwieraną stronę, aż do czasu jest usunięcia (wyzerowania) lub zmiany wartości.
Dodatkowa trudność polega na tym, że zmienna ma przybierać wartość po kliknięciu w miniaturkę flagi, a więc założyłem użycie kodu "onclick" wywyłującego funkcję "jezyk".
Ta funkcja w PHP wygląda tak:
Kod
function jezyk(wybor){
$_SESSION['lang'] = $wybor;
}

Dopóki funkcja jest wywoływana z PHP (bez "onclick") to wszystko działa. Tu jednak trzeba umieścić ja w skrypcie:
Napisałem:
Kod
<script type="text/javascript">
function jezyk(){
$_SESSION['lang'] = eng;
}
</script>

ale to nie działa. Nie znam sie na javasrcipcie, żeby "przetłumaczyć" z PHP, stąd mój post na forum.

A może jest jakieś prostsze rozwiązanie, którego nie znalazłem?
Będę wdzięczny za pomoc.
kamil4u
- Najprościej zapisać zmienną w ciasteczku przez JS, a PHP już odczyta sobie ją sama smile.gif
- Innym sposobem jest użycie AJAX-a.
- Jeszcze innym chyba najlepszym jest jednak skorzystanie z GET, tyle, że przy przechodzeniu do następnej podstrony przekazujesz zmienną lang dalej(tworząc link za pomocą PHP nie będzie to sprawiało żadnego kłopotu)
- kolejnym sposobem jest w chwili klikania na flagę przeniesienie go na np. stronę zmiana_jezyka.php?jezyk=pol (polskie nazwy tylko dla przykładu), a na tej stronie skrypt, który ustawi zmienną sesyjną, a później przeniesienie użytkownika na stronę na której się znajdował.

Możliwości jest wiele, a gdybyś koniecznie chciał zrobić tak jak to opisałeś to należałoby użyć AJAX-a
pedro84
Były już takie tematy na forum, oj były.

Najprościej? Tworzysz linki domain.tld/en/ oraz domain.tld/pl/.

W htaccess sobie przepisz te linki na plik, powiedzmy lang.php.

W tym pliku odczytujesz zmienną z GETa, tworzysz ciastko. W pliku głównym sprawdzasz ciastko, ustawiasz język taki jak w ciastku, jeśli ciacha nie ma, możesz ustawić język domyślny, albo ustawić zgodnie z językiem przeglądarki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.