[HTML/PHP/JS/jQuery] Powiązanie wzajemne selectboksów


(Rafał(c)) #1

Witam Szanownych Forumowiczów,

zwracam się do Was z pytaniem, gdyż nie wychodzi mi samodzielne rozwiązanie. Otóż, mam na stronie internetowej dwa selectboksy, w jednym znajdują się do wyboru towary wymieszane z usługami, z kolei w selectboksie po prawej - ilość.

A więc selectbox po prawej z ilością do wyboru, powinien być aktywny wyłącznie dla niektórych pozycji z selectboksa “towar/usługa” tj. dla pozycji “jabłko”, “gruszka”, “banan”. Po wybraniu usługi w postaci “dowóz” lub “odbiór towaru”, obiekt po prawej z ilością do wyboru powinien zmienić swój stan na disabled.

Jak to zrobić? Czy jest to możliwe na poziomie PHP czy wyłącznie JavaScript? Próbowałem tego rozwiązania: https://www.jqueryscript.net/form/Simple-jQuery-Plugin-For-Chained-Selects-Chained.html, zastosowałem kod z dokumentacji pluginu, aczkolwiek u mnie nie działa. Oczywiście nie zapomniałem o dołączeniu bibliotek JS i kodzie skryptu.

Czy ktoś może mi w tym pomóc, wytłumaczyć, rozjaśnić sprawę? Będę niezmiernie wdzięczny.

Pozdrawiam. :slight_smile:


(Fizyda) #2

Chcesz manipulować DOM-em w przeglądarce, więc jak chcesz to zrobić przy pomocy PHP? Nie da się, więc w grę wchodzi tylko JS.

W plugin zerknąłem i od razu stwierdziłem, że nie chce mi się z nim zaznajamiać. Po prostu jest to przerost formy nad treścią. Rozwiązanie jest proste, algorytm powinien wyglądać mniej więcej w taki sposób:

  1. Tworzysz event listenera na pierwszym selectboxie nasłuchującym zdarzenia onchange - https://www.w3schools.com/jsref/event_onchange.asp
  2. Obsługujesz zdarzenie

Obsługa zdarzenia będzie wyglądała mniej więcej tak:

  1. Sprawdzasz czy wybrano Jabłko, Gruszkę albo Banana
  2. jeśli tak to: ustawiasz drugiego selectboxa jako włączonego (usuwasz atrybut disabled)
  3. w przeciwnym razie: ustawiasz drugiego selectboxa jako wyłączonego (nadajesz atrybut disabled)