Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Select zmieniajacy wartosc sesji
Forum PHP.pl > Forum > Przedszkole
starter91php
Witam, chcialem zrobic przekazywanie wersji jezykowej strony przez sesje, z opcja dowolnego jej zmienienia przez select, kod wyglada tak:
  1. <?php
  2. // select
  3. echo '<form action="" method="post">';
  4. echo "<select name='lng' onchange='submit();'>";
  5. echo "<option value='pl'>Polski</option>";
  6. echo "<option value='eng'>English</option>";
  7. echo "<option value='ger'>Deutsch</option>";
  8. echo "</select>";
  9. echo "<input type='hidden' name='lngsnd' value='1'></form>";
  10.  
  11.  
  12. // ify
  13. if($_POST['lgsnd']=="1"){
  14. if($_POST['lng']=="eng"){
  15. $_SESSION["lng"]="eng";
  16. }
  17. else if($_POST['lng']=="ger"){
  18. $_SESSION["lng"]="ger";
  19. }
  20. else {
  21. $_SESSION["lng"]="pl";
  22. }
  23. }
  24.  
  25.  
  26. if($_SESSION['lng']=="eng"){
  27. require("eng.php");
  28. }
  29. else if($_SESSION['lng']=="ger"){
  30. require("ger.php");
  31. }
  32. else{
  33. require("pl.php");
  34. }
  35. ?>


Po zmienieniu wartosci w select:
var_dump($_POST) = array(2) { ["lng"]=> string(3) "eng" ["lngsnd"]=> string(1) "1" }
var_dump($_SESSION) = array(2) { <sesja logowania> ["lng"]=> string(2) "pl" }

Sesje "lng" rejestruje juz przy logowaniu i nadaje jej pierwsza wartosc "pl".
skinner
Jeśli chcesz cokolwiek robić na sesjach musisz je zainicjować. Na początku strony daj

  1. <?php
  2. ?>


Do poprawy jest też formularz. Skąd wiadomo który język jest aktywny? Wybierzesz np. English strona się przeładowuje i nadal masz w formularzu ustawione Polski.
tmka
Problem tkwi w literówce, twoje pole hidden nazywa się inaczej niż te z POST'a:
  1. <?php
  2. echo "<input type='hidden' name='lngsnd' value='1'></form>";<--- tu
  3.  
  4.  
  5. // ify
  6. if($_POST['lgsnd']=="1"){ <--- tu
  7. ?>
starter91php
faktycznie %-) przeoczylem. Thx!
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.