wileokrotny select JavaScript ?

0

Witam.

Nie wiem od czego zacząć:

Musze zrobić kilka list, załóżmy 4 (opction select )o jednym źródle (może tablica, chodzi o indeksy)

Po wyborze z jednej listy wybiore opcje np. 1:
To w następnych nie powinno byc już tej jedynki.

  1. [opcja] - wybralem 1

  2. [opcja] - nie ma 1 wybralem 3

3 [opcja] - nie mam 1, 3

Myslelem nad opcja disabled, ale nie moge tego polaczyc.
Stronka jest pod php.

Czekam na wszystkie pomysly.

Z gory dziekuje.

0

Manipulowanie własnością disabled przy każdej opcji (wyłączanie opcji wybranych w poprzednich polach) byłoby dobre gdyby nie to, że IE6 i IE7 tego nie obsługują. Więc to raczej odpada.

Pozostaje zwykłe usuwanie opcji z selectów za pomocą select.removeChild(opcja). Po wybraniu opcji w jakimś polu, trzeba by odświeżyć wszystkie następne. Napisanie tego skryptu tak, żeby działał porządnie, jest jednak trochę skomplikowane. Bo użytkownik powinien móc po ustawieniu wszystkich 4 selectów cofnąć się do pierwszego i tam coś zmienić. Tymczasem ta zmiana wpłynęłaby na następne (tutaj: po prostu pozostałe) selecty. Nie tylko trzeba by usunąć z nich opcję wybraną w pierwszym selekcie, ale pewnie też dodać opcję, która wcześniej byłaby usunięta. Może najprościej byłoby po wybraniu opcji w jednym selekcie stworzyć następne od nowa, zrobić im reset: wywalić wszystkie opcje i wrzucić je z powrotem, pomijając "duplikaty" (opcje wybrane w poprzednich polach). Tylko ten sposób sprawiłby, że poprzednio wybrana opcja nie byłaby już wybrana, więc tuż przed resetem wypadałoby zapamiętać wybraną opcję (ale nie przez selectedIndex, bo indeksy po dodaniu mogą się zmienić, tylko przez wartość), a podczas dodawania kolejnej opcji można sprawdzić, czy dana opcja jest równa tej zapamiętanej i jeśli tak -- ustawić ją jako wybraną.

Niestety obawiam się, że jeśli rzeczywiście nie odróżniałeś Javy od JavaScriptu to napisanie takiego skryptu -- dla osoby obeznanej stosunkowo prostego, pewnie kilkadziesiąt linijek -- jest poza Twoim obecnym zasięgiem. Pozostaje, tak jak zaproponował Demonical Monk, szukać gotowca i bezmyślnie go wstawić. Zresztą, nawet jeśli umiesz pisać w JS to możesz oszczędzić sobie pracy i znaleźć gotowca. Jeśli używasz na stronie jQuery, to może poszukaj jakiegoś pluginu? One przeważnie mają niezłą jakość, w przeciwieństwie do większości skryptów w necie. Z drugiej strony, jeśli NIE używasz jQuery, to dołączając do strony bibliotekę + plugin wrzucisz dodatkowe 50+ kilobajtów kodu.

A jak chcesz pisać to sam (ja bym pewnie pisał, bo to nie aż tak dużo roboty), to możesz to zrobić tak, jak napisałem wyżej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1