DeDmAn
18.01.2010, 16:33:56
Witam
Mam taki problem:
Mam sobie switcha:
<?php
switch ($_GET['pokaz'])
{
case "etap3":
// wyswietlenie $_post['xxx']
break;
case "etap2":
// FORMULARZ Z AKCJA: etap3
// przekazanie $_post['xxx'] do etapu3
break;
default:
// FORMULARZ Z AKCJA: etap2
// Wswietlenie formularza z $_post['xxx']
break;
}
?>
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
18.01.2010, 16:39:39
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
18.01.2010, 16:40:39
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
18.01.2010, 17:25:58
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
18.01.2010, 18:02:37
Cytat(DeDmAn @ 18.01.2010, 17:25:58 )

darko gdy robie tak jak mówisz wyskakuje mi (...)
Pokaż, jak robisz.
ja bym zrobil tak
$_SESSION['odbieranie_danych'] = true;
// odebranie danych z formularza i zapis do sesji
//potem odserializowanie danych
// i wywolujemy to co pobrales po nazwie
echo $etap_1['nazwa_pobranego_elementu']; echo $etap_1['nazwa_pobranego_elementu2'];
//itd ..
thek
18.01.2010, 19:54:52
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
18.01.2010, 23:24:25
~thek ma rację, jednak jak wcześniej wspomniałem są to tablice superglobalne, do których masz cały czas dostęp.
thek
19.01.2010, 09:03:27
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ą

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.