Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pole select i sesja
amii
post 9.07.2010, 14:01:41
Post #1





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Mam taki fragment kodu. Jak za pomocą sesji dostać się do zaznaczonego pola. W tym przykładzie domyślnie zaznaczane jest pole 5 i to działa bez problemu a np: jeśli użytkownik kliknie 9 i później wróci na stronę chce żeby za pomocą sesji domyślnie była zaznaczona 9.


  1. session_start(); //na samym poczatku pliku
  2.  
  3. //jakis inny nieważny kod
  4.  
  5. for($b=0; $b<24; $b++) { //petla ktora tworzy opcje, 24 to liczba opcji
  6. if ($b==5) $petla .= '<option value="'.$b.'" selected>'.$b.'</option>';
  7. else $petla .= '<option value="'.$b.'">'.$b.'</option>';
  8. }
  9.  
  10. //jakis inny niewazny kod
  11.  
  12. $html .= '<select name="czaspicia" id="czaspicia" class="i1">
  13. '.$petla.' //opcje utworzone z petli
  14.  
  15. </select> godziny';


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
smietek
post 9.07.2010, 14:08:45
Post #2





Grupa: Zarejestrowani
Postów: 306
Pomógł: 32
Dołączył: 20.01.2008

Ostrzeżenie: (20%)
X----


Porównujesz $b z tym co masz w sesji (chociaż czy ty to w ogóle gdzieś obsługujesz przez $_POST lub $_GET?), i jeśli obie wartości są sobie równe, dodajesz do option po prostu "selected" (dopisujesz ciąg).


--------------------
Go to the top of the page
+Quote Post
amii
post 9.07.2010, 14:38:53
Post #3





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

Ostrzeżenie: (0%)
-----


Wielkie dzięki działa smile.gif Teraz jeszcze tylko potrzebuje ustawić domyślne selecty, które są aktywne jeśli użytkownik po raz pierwszy odwiedza stronę i nie ma danych z sesji. Próbowałem tak ale nie działa.

  1. if (!isset($_SESSION['czaspicia'])) $petla .= '<option value="1" selected>1</option>';
  2. for($b=0; $b<99; $b++) {
  3. if ($b==$_SESSION['czaspicia']) $petla .= '<option value="'.$b.'" selected>'.$b.'</option>';
  4. else $petla .= '<option value="'.$b.'">'.$b.'</option>';
  5. }
  6.  
  7. if (!isset($_SESSION['godzina'])) $petla1 .= '<option value="20" selected>20</option>';
  8. for($d=0; $d<24; $d++) {
  9. if ($d==$_SESSION['godzina']) $petla1 .= '<option value="'.$d.'" selected>'.$d.'</option>';
  10. else $petla1 .= '<option value="'.$d.'">'.$d.'</option>';
  11. }


Dla radio działa natomiast:
  1. if ($_SESSION['plec'] != 'k' && $_SESSION['plec'] != 'm') $_SESSION['plec'] = 'm'; //wyjatek na domyslna wartosc pola radio
  2. $plec1 = ($_SESSION['plec'] == 'k' ? "checked" : '');
  3. $plec2 = ($_SESSION['plec'] == 'm' ? "checked" : '');




--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
thek
post 9.07.2010, 14:47:16
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ja w formularzach zazwyczaj robię sobie zmienną tablicową, która przechowuje wartości formularza, nazwijmy ją $fields i od razu nadaję wartości domyślne.
$fields = array( 'pole1' => 'default', 'pole2' => 'default' );
Jakiekolwiek działania z użyciem GET lub POST modyfikują mi ją, dzięki czemu zawsze jest aktualna i mogę sobie ją wyświetlać, modyfikować czy inne cuda robić. Takie podejście załatwia mi wiele problemów, w tym z wartościami domyślnymi, rozpoznawaniem inserta od update, dzięki czemu pisze jedną zwartą obsługę forma, niezależnie od tego czy jest to dodawanie czy edycja danych.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:51