Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Select zależne od siebie
o-w-c-a
post 25.10.2013, 13:57:24
Post #1





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

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


Witam.

Na wstępie chciałem zaznaczyć że widziałem że są podobne tematy, jednak poziom mojej wiedzy w PHP jest wybitnie podły i nie udało mi się zrozumieć w pełni działania nie opierając się stricte na moich danych.

Mam coś takiego:
  1. <td>
  2. <select name="godzina">
  3. <option value="09"<?php $czas = date("H"); if ($czas < 10) echo ' selected="selected"'; ?>>1</option>
  4. <option value="13"<?php $czas = date("H"); if (($czas > 10 && $czas < 14) || $czas == 10) echo ' selected="selected"'; ?>>2</option>
  5. <option value="18"<?php $czas = date("H"); if ($czas == 14 || $czas > 14) echo ' selected="selected"'; ?>>3</option>
  6. </select>
  7. </td>


Funkcjonalność ma wybrać przypisanie do godziny bieżącej (wybrać z selecta godzinę najbardziej pasującą), później jako parametr zapisuję sobie do bazy wartość.

W tym momencie pojawiła mi się potrzeba zależność która w przypadku wyboru 1 lub 3 opcji (09 lub 18) pozwoli wybrać dodatkowe elementy.
Próbowałem coś takiego:
  1. <td>
  2. <?php
  3. $_POST['godzina'];
  4. switch($_POST['godzina'])
  5. {
  6. case 1:
  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 2:
  14. echo $_POST['godzina'];
  15. echo '<select name="Ilosc">';
  16. echo '<option value="Duzo">Dużo</option>';
  17. echo '</select>';
  18. break;
  19. case 3;
  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>


Różnica polega że o 13 może być tylko Duża ilość wybrana.
Trochę poczytałem i chyba nie da się zrobić w PHP zależnego menu (chyba że ukryte albo coś tego typu)?

Konstrukcja pierwszej części jest już dla mnie "opanowana" tzn mam później przygotowany plik który pobiera i ładuje dane do bazy danych (jest to inny zewnętrzny - co pewnie nie jest optymalne).
Być może coś nie tak pytam ale ta strona to jest "zakończenie" tego co potrzebuje móc obrabiać a niestety w PHP jestem totalnie zielony...

Z góry dzięki za pomocne rozwiązania.

Ten post edytował o-w-c-a 25.10.2013, 16:01:36
Go to the top of the page
+Quote Post
nospor
post 25.10.2013, 14:06:18
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Skoro Twoje wartosci to 09 13 18 to czemu w SWITCH w CASE porownujesz je do 1 2 3? W zyciu ci sie nie zgodzi.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
o-w-c-a
post 25.10.2013, 14:20:07
Post #3





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

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


OK - super - dzięki za trafną poradę (sądziłem że oznaczenia 1,2,3 dotyczą 1,2,3 opcji z select a nie bezpośrednio wartości).

Teraz działa częściowo, tzn wszystkie 3 opcje "główne" wybrane powodują że są 2 dodatkowe informacje (Dużo, Mało). Nie działa o tyle że w drugim przypadku (przy wyborze 2 czyli wartości 13) powinna być opcja tylko Dużo.

Co tutaj mam źle?
Go to the top of the page
+Quote Post
--anonim--
post 25.10.2013, 14:28:03
Post #4





Goście







może ajax?
Go to the top of the page
+Quote Post
o-w-c-a
post 25.10.2013, 14:54:52
Post #5





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

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


Hmm - właśnie przeglądałem zasugerowaną tematykę... i chyba to nie na mój poziom - jeśli mogę prosić jakieś propozycje to z góry dzięki, a ja zabieram się za studiowanie javascriptów bo to chyba jedyna metodą którą może mi się uda samemu...
Go to the top of the page
+Quote Post
nospor
post 25.10.2013, 14:55:26
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To pokaz kod po zmianach.... skad mam wiedziec czy podczas poprawek nie zrobiles nowych bledow


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
o-w-c-a
post 25.10.2013, 14:59:40
Post #7





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

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


  1. <table>
  2. <form method="post" action="input.php">
  3. <tr>
  4. <td>Wybierz:</td>
  5. <td>
  6. <select name="godzina">
  7. <option value="09"<?php $czas = date("H"); if ($czas < 10) echo ' selected="selected"'; ?>>1</option>
  8. <option value="13"<?php $czas = date("H"); if (($czas > 10 && $czas < 14) || $czas == 10) echo ' selected="selected"'; ?>>2</option>
  9. <option value="18"<?php $czas = date("H"); if ($czas == 14 || $czas > 14) echo ' selected="selected"'; ?>>3</option>
  10. </select>
  11. </td>
  12. <td>Oraz:</td>
  13. <td>
  14. <?php
  15. switch($_POST['godzina'])
  16. {
  17. case 09:
  18. echo $_POST['godzina'];
  19. echo '<select name="Ilosc">';
  20. echo '<option value="Malo" selected="selected">Mało</option>';
  21. echo '<option value="Duzo">Dużo</option>';
  22. echo '</select>';
  23. break;
  24. case 13:
  25. echo $_POST['godzina'];
  26. echo '<select name="Ilosc">';
  27. echo '<option value="Duzo">Dużo</option>';
  28. echo '</select>';
  29. break;
  30. case 18;
  31. echo $_POST['godzina'];
  32. echo '<select name="Ilosc">';
  33. echo '<option value="Malo" selected="selected">Mało</option>';
  34. echo '<option value="Duzo">Dużo</option>';
  35. echo '</select>';
  36. break;
  37. default:
  38. }
  39. ?>
  40. </td>
  41. </tr>
  42.  
  43. <tr>
  44. <td align="center"><br><input type="submit" style="background-color: #F0F0F0;"
  45. name="submit" value=" Wyślij "></td>
  46. </tr>
  47. </table>
Go to the top of the page
+Quote Post
nospor
post 25.10.2013, 15:00:51
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Skad ten srednik przy 18? Dwukropek ma byc...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
o-w-c-a
post 25.10.2013, 15:25:00
Post #9





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

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


Racja, ale i tak nie działa wink.gif
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 - 13:10