Witam,
Mam stworzony formularz a w nim pola select wypełniane danymi z bazą danych.
Są tam dwa select województwa i miasta. Chce żeby po wybraniu np województwa Pomorskiego w drugim select pokazały się tylko miasta z tego woj. bez przeładowywania strony wie ktoś może jak to zrobić ?? Proszę o pomoc jaką technologię trzeba wybrać ??
javascript (wobec tego przenoszę do Webmastering).
JavaScript + Ajax (np.framework jQuery).
JQuery znam troszkę jest do tego jakaś funkcja i jak takie coś w tym zrobić resztę doczytam
nie ma do tego funkcji, ale w pare linijek cos takiego zrobisz (bez ajaxa, moim zdaniem to komplikuje tutaj)
- robisz selecta o id
wojewodztwa
- robisz obok diva o id
miasta
- w optionach do województw jeżeli używasz value z jakimis id to spoko, jak nie, to utworzysz do każdego jakiś krótki atrybut typu
data-wiazanie
- do powiązania wybranego wojewodztwa z - w divie
miasta
umieszczasz szereg selectow (bezname
) obok siebie - domyslnie wszystkie ukryte przez css (ale nie caly div) - kazdy z nich powinien byc powiazany w jakis sposob z optionem z wojewodztw (mozna uzyc np tagudata-wiazanie
, albo nawet id, pamietajac, ze id nie moze zaczynac sie od cyfr)
potem cala sztuka to jest przechwycic zdarzenie zmiany wojewodztwa, odczytac wartosc tagu data-wiazanie
(lub value), ukryc wszystkie widoczne selecty do miast, oraz wyczyscic im atrybut name
, dopasowac wlasciwy select z miastami, nadac mu atrybut name
(zeby odczytac wartosc w php), pokazac (zeby user go widzial).
czyli po przygotowaniu HTML (z czym chyba nie bedzie problemu?) bedziesz potrzebowal funkcji jQuery
-
ready
(do elementudocument
) - do uruchomienia skryptu po załadowaniu HTML -
change
(do elementu select z wojewodztwami) - do przechwycenia zdarzenia zmiany wartosci -
val
, alboattr
(do odczytania value, lubdata-wiazanie
) - w drugim przypadku przyda sie tezfind
(do odnalezienia wybranego optiona) -
hide
/show
-
removeAttr
(do usuniecia atrybutu),attr
(wspominany wyzej do odczytu, ale mozna nim ustawic atrybut)
Chyba tyle. Teraz zostaje Ci nauka i czytanie dokumentacji :)
Ok dzięki jutro sprawdzę jak to działa bo Jquery znam wiec z tym problemu nie będzie ale jak tak analizowałem to wydaje mi się ze powinno chodzić :) z przygotowaniem HTML też problemu nie mam.