Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak przetransportować zmienną dalej?
Forum PHP.pl > Forum > Przedszkole
DeDmAn
Witam

Mam taki problem:

Mam sobie switcha:

  1. <?php
  2.  
  3. switch ($_GET['pokaz'])
  4. {
  5.  
  6. case "etap3":
  7. // wyswietlenie $_post['xxx']
  8. break;
  9.  
  10.  
  11. case "etap2":
  12. // FORMULARZ Z AKCJA: etap3
  13. // przekazanie $_post['xxx'] do etapu3
  14. break;
  15.  
  16.  
  17. default:
  18. // FORMULARZ Z AKCJA: etap2
  19. // Wswietlenie formularza z $_post['xxx']
  20.  
  21. break;
  22. }
  23. ?>



Więc chciałbym tak:

W default wczytuje formularz w ktorym wpisuje sobie _POST, w kolejnym wyswietlam. I chcialbym go przekazac do kolejnego etapu. Jak mam to zrobic?
Czy tylko zostaje sesja?

trucksweb
jesli to bedzie tablica to tak,jedynie sesja bedzie rozwiazaniem
jeslii to tylko jedna/dwie zmienne to mozesz utworzyc hiddena i przekazywac w nim wartosci
darko
Jeśli chcesz przekazać zmienną w obrębie jednego skryptu z jednego bloku kodu, do innego, to sesja nie jest potrzebna, wystarczy zdefiniować zmienną np. $x = $_POST['x']; czy $_GET['x']. Tablice $_POST i $_GET mają to do siebie, że są superglobalne, więc dostęp do ich danych nie jest problematyczny i właściwie masz go w każdym miejscu skryptu, do którego zostały wysłane zmienne którąś z tych metod(POST lub GET). Jeżeli natomiast chciałbyś zrobić np. przekierowanie do innego skryptu, to użyj sesji. Możesz oczywiście zrobić przekierowanie ze zmiennymi (ale tylko jeśli wysłano metodą GET), poprostu przesyłasz odpowiednie parametry w adresie, np. window.location.href = 'jakis_inny_skrypt.php?zmienna1='.$_GET['zmienna1'].'&zmienna2='.$_GET['zmienna2'];
DeDmAn
darko gdy robie tak jak mówisz wyskakuje mi:

Cytat
Notice: Undefined variable: kwotapozyczki in D:\_www\Kancelaria Finansowa\xxx.php on line 16


Więc chyba zostaje sesja
darko
Cytat(DeDmAn @ 18.01.2010, 17:25:58 ) *
darko gdy robie tak jak mówisz wyskakuje mi (...)

Pokaż, jak robisz.
lnn
ja bym zrobil tak
  1. $_SESSION['odbieranie_danych'] = true;
  2. // odebranie danych z formularza i zapis do sesji
  3. $_SESSION['etap_1'] = serialize($_POST);
  4.  
  5. //potem odserializowanie danych
  6. $etap_1 = unserialize($_SESSION['etap_1'];
  7.  
  8. // i wywolujemy to co pobrales po nazwie
  9. echo $etap_1['nazwa_pobranego_elementu'];
  10. echo $etap_1['nazwa_pobranego_elementu2'];
  11.  
  12. //itd ..
thek
Pewnie definiujesz tę zmienną poza zasięgiem. Poczytaj ciut o zasięgu zmiennych to zrozumiesz, że jeśli zmienna ta powinna być widoczna tam gdzie chcesz, to nie może się ona pojawiać znikąd. Zmienna zdefiniowana w obrębie funkcji warunkowej, switch i wszelkich pętlach jest widoczna tylko w nich. Po ich zakończeniu ulega zniszczeniu. By to ominąć musiz deklarować je wcześniej zmieniać wewnątrz pętli i wtedy możesz ją odczytać na innym etapie już poza strukturą kontrolną.
darko
~thek ma rację, jednak jak wcześniej wspomniałem są to tablice superglobalne, do których masz cały czas dostęp.
thek
Ja się odniosłem do zmiennej kwota_pozyczki wskazywanej błędem, bo jakby nie spojrzeć nie wygląda mi to na żadną daną z tablicy $_POST, $_GET, $_SESSION, $_REQUEST tylko jakąś lokalną smile.gif Co prawda może gdzieś jest przypisanie, ale nadal pewnie do zmiennej lokalnej, której czas życia kończy się przed linią z błędem. Gdybyśmy wiedzieli jak wygląda kod do linii 16 włącznie to pomogło by to Nam zapewne ustalić przyczynę lepiej.
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.