Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] znikajaca sesja po przeladowaniu
Forum PHP.pl > Forum > Przedszkole
lnn
witam

nie mialem tego problemu dopoki nie wstawilem tego (ponizej), mysle ze chodzi o to ze tablica $_POST po przeladowaniu ulega "wyczyszczeniu" :/

  1. <div class="row">
  2. <div class="cell_left"><label for="wyposazenie_ilosc">wyposażenie pokoi:</label></div>
  3. <div class="cell_right">
  4. <?php
  5. $ilosc = (isset($_GET['ilosc']) ? $_GET['ilosc'] : 0);
  6.  
  7. $mozliwosci = array('wybierz ilo?ć pól do wstawienia',1,2,3,4,5,6,7,8,9,10);
  8.  
  9. ?>
  10.  
  11. <select name="wyposazenie_ilosc" onchange="location = 'index.php?p=add2&ilosc=' + this.options[this.selectedIndex].value;">
  12. <?php
  13. foreach($mozliwosci as $mozliwosc):
  14. if($mozliwosc==$_GET['ilosc'])
  15. {
  16. $zaz='selected';
  17. } else {
  18. $zaz='';
  19. }
  20. ?>
  21. <option value="<?php echo $mozliwosc; ?>" <?php echo $zaz?>><?php echo $mozliwosc; ?></option>
  22. <?php endforeach; ?>
  23. </select></div>
  24. </div>
  25. <div class="row">
  26. <div class="cell_left"><label for="wyposazenie"></label></div>
  27. <div class="cell_right">
  28. <?php for($i=0,$j=$ilosc;$i<$j;$i++): ?>
  29. <input type="text" value="Input nr <?php echo ($i+1); ?>" /> <br />
  30. <?php endfor; ?>
  31. </div>
  32. </div>


normalnie domyslnie sobie wyswietlam zawartosc sesji i jest:
$_SESSION['nazwa']=
$_SESSION['adres1']=
$_SESSION['adres1_nr']=
$_SESSION['adres2']=
$_SESSION['adres2_kod']=
$_SESSION['wojewodztwo']=dolnośląskie
$_SESSION['tel1']=
$_SESSION['tel2']=
$_SESSION['fax']=
$_SESSION['www']=
$_SESSION['opis']=
$_SESSION['ok']=Przejdz dalej

po zmienie ilosci tego pola wartosci sie kasuja :/
zmienne przekazuje z poprzedniej strony za pomoca POST do SESJI
  1. $_SESSION['etap_1'] = serialize($_POST);
  2. $etap_1 = $_SESSION['etap_1'];
  3.  
  4. $unserialize = unserialize($etap_1);
  5.  
  6. foreach($unserialize as $klucz => $element)
  7. {
  8. echo '$_SESSION[\''.$klucz.'\']='.$element.'<br />';
  9. }


czy da sie jakos tego javascripta zrobic tak zeby pamietal dane z sesji?

jeszcze zobrazuje sytuacje moze bedzie latwiej zrozumiec:


thek
Masz błąd bo wywołujesz przeładowanie strony w zdarzeniu onchange. POST nie zostaje wtedy wysłany bo zdarzenie submit nie zostaje wywołane. By tak się nie działo powinieneś przebudować skrypt by tworzył dynamicznie te pola bez przeładowania (w JS) a same wyniki były odebrane jako tablica, czyli najlepiej niech to będą input z name="nazwa_twoja[]" winksmiley.jpg No a ponadto samo dodawanie i odejmowanie powinno być nie na SELECT, bo każda zmiana tego skasuje Ci poprzednie wartości wpisane przy tworzeniu nowych. A przecież user mógl wiąć 5 tylko choć potem przypomni mu się jeszcze 3. I co wtedy? Ma wpisywać wszystkie od nowa? winksmiley.jpg

EDIT: Tobie powinno chodzić o coś takiego jak na tym serwisie gdzie są oferty pracy Zobacz jak tam mają pola Oferujemy, Obowiązki, Oczekujemy. Tam jest to mniej więcej tak rozwiązane jak Ci opisuję
lnn
Cytat(thek @ 17.01.2010, 00:36:48 ) *
Masz błąd bo wywołujesz przeładowanie strony w zdarzeniu onchange. POST nie zostaje wtedy wysłany bo zdarzenie submit nie zostaje wywołane. By tak się nie działo powinieneś przebudować skrypt by tworzył dynamicznie te pola bez przeładowania (w JS) a same wyniki były odebrane jako tablica, czyli najlepiej niech to będą input z name="nazwa_twoja[]" winksmiley.jpg No a ponadto samo dodawanie i odejmowanie powinno być nie na SELECT, bo każda zmiana tego skasuje Ci poprzednie wartości wpisane przy tworzeniu nowych. A przecież user mógl wiąć 5 tylko choć potem przypomni mu się jeszcze 3. I co wtedy? Ma wpisywać wszystkie od nowa? winksmiley.jpg

EDIT: Tobie powinno chodzić o coś takiego jak na tym serwisie gdzie są oferty pracy Zobacz jak tam mają pola Oferujemy, Obowiązki, Oczekujemy. Tam jest to mniej więcej tak rozwiązane jak Ci opisuję

no dokladnie cos takiego szukalem :/ ale chyba gotowego rozwiazania nie znajde..
to jest chyba jQuery?? z tego co ze zrodla wyczytalem.. czyli wyzsza szkola jazdy :/
no ale dzieki mimo wszystko
thek
Radzę Ci dokładnie się przyjrzeć źródłu strony dzięki czemu poznasz strukturę tworzenia. Jeśli pomyślisz trochę, znasz ociupinkę jQuery (ale w czystym JS to też żaden problem) i przeczytasz uważnie mój opis jak należy to zrobić, to taki skrypt powinieneś po krótkim czasie napisać samodzielnie. Uwierz, że to się tylko wydaje trudne.

EDIT: jQuery to tutaj pomoc tylko do tworzenia i usuwania elementów w zasadzie winksmiley.jpg
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.