Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] Lista rozwijana
o-w-c-a
post 25.10.2013, 17:46:51
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 22.01.2010

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


Witam.

Pewnie dla większości z Was mój problem będzie trywialny (wcześniej wydawało mi się że można rozwiązać temat bezpośrednio z PHP - opcję poddałem na korzyść JavaScriptu), jednak siedzę już ze 2-3h i szukam i nie mogę znaleźć nic bo chciałoby działać jak potrzebuję.

Zależy mi aby w zależności od wybranego selecta
  1. <select name="godzina">
  2. <option value="09"<?php $czas = date("H"); if ($czas < 10) echo ' selected="selected"'; ?>>1</option>
  3. <option value="13"<?php $czas = date("H"); if (($czas > 10 && $czas < 14) || $czas == 10) echo ' selected="selected"'; ?>>2</option>
  4. <option value="18"<?php $czas = date("H"); if ($czas == 14 || $czas > 14) echo ' selected="selected"'; ?>>3</option>
  5. </select>


Listy rozwijane w JS mogę znaleźć jednak jak "zaczepić" do tego PHP co mam?

Tzn chodzi mi o to że będą dwa rozwijane paski obok siebie jedno którego wynikiem wyboru są wartości 09,13,18 a drugie reagujące na te wartości (przypisane do "godzina") z różnymi listami rozwijanymi w zależności od wybranej "godziny". Niestety nie wiem jak wyciągnąć tą "godzinę" i gdzieś dalej ją wykorzystać...

Z góry dziękuję za pomoc.

Ten post edytował o-w-c-a 25.10.2013, 17:48:46
Go to the top of the page
+Quote Post
gorden
post 25.10.2013, 21:23:21
Post #2





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


Nie za bardzo rozumiem problem.. Chcesz w zależności od selecta pierwszego wyświetlać inne? Dodatkowo, opcje w nim są zależne od aktualnej daty?

Z tego co widzę, ten select będzie mieć tylko jeden wybór - więc zdarzenie onchange możesz pominąć. Wystarczy przy załadowaniu dokumentu wykorzystać JSowy obiekt Date (zamiast PHP, później i tak musisz walidować formularz po stronie serwera). Jeśli zależy Ci by był ten select, zrób jakiegoś switcha z (new Date()).getHours() i tam generujesz jedyną opcję selecta. Dalej, pod tego samego switcha możesz podpiąć generowanie kolejnego selecta, który będzie zależny od godziny.
Go to the top of the page
+Quote Post
o-w-c-a
post 26.10.2013, 07:40:35
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 22.01.2010

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


Będąc szczerym to mój poziom wiedzy jest raczej słaby więc nie do końca wiem o co chodzi w propozycji rozwiązania problemu.
Nie chciałem mieszać postów, ale opcję ze switchem testowałem i nie działała mi ponieważ generowanie treści strony było "z góry" tzn jeśli godzina bieżąca była godziną odpowiadającą wyborowi z 2 (czyli: (($czas > 10 && $czas < 14) || $czas == 10) ) to znikało dla wszystkich opcji pozycja "Małe", a nie o to mi chodzi.
Miałem takie coś:
  1. <td>
  2. <?php
  3. $_POST['godzina'];
  4. switch($_POST['godzina'])
  5. {
  6. case 09:
  7. echo $_POST['godzina'];
  8. echo '<select name="Ilosc">';
  9. echo '<option value="Malo" selected="selected">Mało</option>';
  10. echo '<option value="Duzo">Dużo</option>';
  11. echo '</select>';
  12. break;
  13. case 13:
  14. echo $_POST['godzina'];
  15. echo '<select name="Ilosc">';
  16. echo '<option value="Duzo">Dużo</option>';
  17. echo '</select>';
  18. break;
  19. case 18:
  20. echo $_POST['godzina'];
  21. echo '<select name="Ilosc">';
  22. echo '<option value="Malo" selected="selected">Mało</option>';
  23. echo '<option value="Duzo">Dużo</option>';
  24. echo '</select>';
  25. break
  26. default:
  27. }
  28. ?>
  29. </td>


cała trick polega na tym że ja nie chcę mieć wygenerowanych list drugiego selecta w zależności od bieżącej godziny, tylko od godziny wybranej w pierwszym selectie - albo nie rozumiem Twojej propozycji (za którą tak czy siak dzięki)

Ten post edytował o-w-c-a 26.10.2013, 07:41:11
Go to the top of the page
+Quote Post
gorden
post 26.10.2013, 10:20:13
Post #4





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


No to dodaj do tego selecta generowanego w PHP zdarzenie onchange z funkcją JS generującą/pokazującą kolejnego selecta
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: 15.05.2025 - 08:52